diff --git a/ao-config.in b/ao-config.in
index f412054d396bee0a3197d9bcfa87ca0852cecc24..5a6c0675fd6cdd10391df18ccff9f6e3f4c27047 100644
--- a/ao-config.in
+++ b/ao-config.in
@@ -21,9 +21,6 @@ include_dir="@includedir@"
 ao_include_dir="@includedir@/@PACKAGE@"
 lib_dir="@libdir@"
 
-esd_cflags="@ESD_CFLAGS@"
-esd_libs="@ESD_LIBS@"
-
 plugin_dir="@plugindir@"
 
 usage()
@@ -92,15 +89,15 @@ if test "$echo_exec_prefix" = "yes"; then
 fi
 
 if test "$include_dir" != "/usr/include"; then
-    cflags="-I$include_dir $esd_cflags"
+    cflags="-I$include_dir"
 else
-    cflags="$esd_cflags"
+    cflags=""
 fi
 
 if test "$lib_dir" != "/usr/lib"; then
-    libs="-L$lib_dir $esd_libs -lao -ldl"
+    libs="-L$lib_dir -lao -ldl"
 else
-    libs="$esd_libs -lao -ldl"
+    libs="-lao -ldl"
 fi
 
 if test "$echo_cflags" = "yes"; then
diff --git a/configure.in b/configure.in
index aadb5c0aa719aee770609d2e90f91cb10168c971..709ffe36996259bafc03429873df40484fdaf579 100644
--- a/configure.in
+++ b/configure.in
@@ -22,6 +22,7 @@ dnl Check for programs
 dnl ====================================
 
 AC_PROG_CC
+AC_LIBTOOL_DLOPEN
 AM_PROG_LIBTOOL
 
 dnl ====================================
@@ -125,6 +126,11 @@ dnl Check for ALSA
 AC_CHECK_LIB(asound, snd_pcm_open, have_alsa=yes, have_alsa=no)
 AM_CONDITIONAL(HAVE_ALSA,test "x$have_alsa" = xyes)
 
+if test "x$have_alsa" = xyes; then
+	ALSA_LIBS="-lasound"
+	AC_SUBST(ALSA_LIBS)
+fi
+
 dnl Check for IRIX
 
 case $host in
diff --git a/src/audio_out.c b/src/audio_out.c
index 3f37ae19ac112a5c87dc60d42ab5dc6c070c167e..09f408e85dc0ef6987f00d987471e4cb415a9be4 100644
--- a/src/audio_out.c
+++ b/src/audio_out.c
@@ -130,6 +130,7 @@ void ao_initialize(void)
 						if (plugin) {
 							driver->next = plugin;
 							plugin->next = NULL;
+							driver = driver->next;
 						}
 					}
 				}
diff --git a/src/plugins/alsa/Makefile.am b/src/plugins/alsa/Makefile.am
index 5485bf873540d4e4c04e1498fb0c4dae9c2d1808..0a6b8ac175075fc52f15b586d1c605766919da23 100644
--- a/src/plugins/alsa/Makefile.am
+++ b/src/plugins/alsa/Makefile.am
@@ -22,6 +22,7 @@ libdir = $(plugindir)
 lib_LTLIBRARIES = $(alsaltlibs)
 
 libalsa_la_LDFLAGS = $(alsaldflags)
+libalsa_la_LIBADD = @ALSA_LIBS@
 libalsa_la_SOURCES = $(alsasources)
 
 EXTRA_DIST = ao_alsa.c