Index: libcanberra-0.29/src/driver-order.c
===================================================================
--- libcanberra-0.29.orig/src/driver-order.c
+++ libcanberra-0.29/src/driver-order.c
@@ -30,6 +30,7 @@
 #include "driver-order.h"
 
 const char* const ca_driver_order[] = {
+	"multi",
 #ifdef HAVE_PULSE
         "pulse",
 #endif
Index: libcanberra-0.29/src/multi.c
===================================================================
--- libcanberra-0.29.orig/src/multi.c
+++ libcanberra-0.29/src/multi.c
@@ -107,8 +107,7 @@ int driver_open(ca_context *c) {
         int ret = CA_SUCCESS;
 
         ca_return_val_if_fail(c, CA_ERROR_INVALID);
-        ca_return_val_if_fail(c->driver, CA_ERROR_NODRIVER);
-        ca_return_val_if_fail(!strncmp(c->driver, "multi", 5), CA_ERROR_NODRIVER);
+        ca_return_val_if_fail(!c->driver || strncmp(c->driver, "multi", 5) == 0, CA_ERROR_NODRIVER);
         ca_return_val_if_fail(!PRIVATE(c), CA_ERROR_STATE);
 
         if (!(c->private = p = ca_new0(struct private, 1)))
