diff --git a/src/ao_private.h b/src/ao_private.h
index 591f81557c31f3737121a1bfd5cc1d8a034d5b31..8ca9a1e79f43bba9b6146f1ce9066541c617a785 100644
--- a/src/ao_private.h
+++ b/src/ao_private.h
@@ -38,9 +38,12 @@
 #endif
 
 /* RTLD_NOW is the preferred symbol resolution behavior, but
-   some platforms do not support it. */
+ * some platforms do not support it. 
+ *
+ * ALSA requires RTLD_GLOBAL.
+ */
 #if defined(__OpenBSD__)	
-#define DLOPEN_FLAG RTLD_LAZY
+#define DLOPEN_FLAG (RTLD_LAZY | RTLD_GLOBAL)
 #else
 #define DLOPEN_FLAG (RTLD_NOW | RTLD_GLOBAL)
 #endif