99159a2
diff -up paprefs-0.9.10/configure.ac.modules-path paprefs-0.9.10/configure.ac
99159a2
--- paprefs-0.9.10/configure.ac.modules-path	2011-09-27 10:25:35.000000000 +0200
99159a2
+++ paprefs-0.9.10/configure.ac	2011-09-27 10:25:35.000000000 +0200
99159a2
@@ -43,8 +43,8 @@ AC_SUBST(GUILIBS_CFLAGS)
99159a2
 AC_SUBST(GUILIBS_LIBS)
99159a2
 
99159a2
 PKG_CHECK_MODULES(LIBPULSE, libpulse)
99159a2
-LIBPULSE_MODLIBDIR=`pkg-config libpulse --variable libdir`
99159a2
-AC_SUBST(LIBPULSE_MODLIBDIR)
99159a2
+LIBPULSE_MODLIBEXECDIR=`pkg-config libpulse --variable modlibexecdir`
99159a2
+AC_SUBST(LIBPULSE_MODLIBEXECDIR)
99159a2
 
99159a2
 # If using GCC specifiy some additional parameters
99159a2
 if test "x$GCC" = "xyes" ; then
99159a2
diff -up paprefs-0.9.10/configure.modules-path paprefs-0.9.10/configure
99159a2
--- paprefs-0.9.10/configure.modules-path	2011-09-27 10:26:17.000000000 +0200
99159a2
+++ paprefs-0.9.10/configure	2012-10-29 23:06:20.226909723 +0100
99159a2
@@ -670,7 +670,7 @@ USE_NLS
99159a2
 USE_LYNX_FALSE
99159a2
 USE_LYNX_TRUE
99159a2
 have_lynx
99159a2
-LIBPULSE_MODLIBDIR
99159a2
+LIBPULSE_MODLIBEXECDIR
99159a2
 LIBPULSE_LIBS
99159a2
 LIBPULSE_CFLAGS
99159a2
 GUILIBS_LIBS
99159a2
@@ -4973,7 +4973,7 @@ else
99159a2
 $as_echo "yes" >&6; }
99159a2
 
99159a2
 fi
99159a2
-LIBPULSE_MODLIBDIR=`pkg-config libpulse --variable libdir`
99159a2
+LIBPULSE_MODLIBEXECDIR=`pkg-config libpulse --variable modlibexecdir`
99159a2
 
99159a2
 
99159a2
 # If using GCC specifiy some additional parameters
99159a2
diff -up paprefs-0.9.10/doc/Makefile.in.modules-path paprefs-0.9.10/doc/Makefile.in
99159a2
--- paprefs-0.9.10/doc/Makefile.in.modules-path	2011-09-27 10:26:18.000000000 +0200
99159a2
+++ paprefs-0.9.10/doc/Makefile.in	2012-10-29 23:06:20.228909741 +0100
99159a2
@@ -123,7 +123,7 @@ LIBINTL = @LIBINTL@
99159a2
 LIBOBJS = @LIBOBJS@
99159a2
 LIBPULSE_CFLAGS = @LIBPULSE_CFLAGS@
99159a2
 LIBPULSE_LIBS = @LIBPULSE_LIBS@
99159a2
-LIBPULSE_MODLIBDIR = @LIBPULSE_MODLIBDIR@
99159a2
+LIBPULSE_MODLIBEXECDIR = @LIBPULSE_MODLIBEXECDIR@
99159a2
 LIBS = @LIBS@
99159a2
 LN_S = @LN_S@
99159a2
 LTLIBICONV = @LTLIBICONV@
99159a2
diff -up paprefs-0.9.10/Makefile.in.modules-path paprefs-0.9.10/Makefile.in
99159a2
--- paprefs-0.9.10/Makefile.in.modules-path	2011-09-27 10:26:18.000000000 +0200
99159a2
+++ paprefs-0.9.10/Makefile.in	2012-10-29 23:06:20.229909749 +0100
99159a2
@@ -176,7 +176,7 @@ LIBINTL = @LIBINTL@
99159a2
 LIBOBJS = @LIBOBJS@
99159a2
 LIBPULSE_CFLAGS = @LIBPULSE_CFLAGS@
99159a2
 LIBPULSE_LIBS = @LIBPULSE_LIBS@
99159a2
-LIBPULSE_MODLIBDIR = @LIBPULSE_MODLIBDIR@
99159a2
+LIBPULSE_MODLIBEXECDIR = @LIBPULSE_MODLIBEXECDIR@
99159a2
 LIBS = @LIBS@
99159a2
 LN_S = @LN_S@
99159a2
 LTLIBICONV = @LTLIBICONV@
99159a2
diff -up paprefs-0.9.10/src/Makefile.am.modules-path paprefs-0.9.10/src/Makefile.am
99159a2
--- paprefs-0.9.10/src/Makefile.am.modules-path	2009-12-05 21:20:20.000000000 +0100
99159a2
+++ paprefs-0.9.10/src/Makefile.am	2012-10-29 23:06:20.227909732 +0100
99159a2
@@ -31,7 +31,7 @@ paprefs_SOURCES=paprefs.cc
99159a2
 
99159a2
 paprefs_LDADD=$(AM_LDADD) $(GUILIBS_LIBS) $(LIBPULSE_LIBS)
99159a2
 paprefs_CXXFLAGS=$(AM_CXXFLAGS) $(GUILIBS_CFLAGS) $(LIBPULSE_CFLAGS)
99159a2
-paprefs_CXXFLAGS+=-DGLADE_FILE=\"$(gladedir)/paprefs.glade\" -DLOCALEDIR=\"$(localedir)\" -DMODLIBDIR=\""$(LIBPULSE_MODLIBDIR)/"\" -DSHREXT=\"$(SHREXT)\"
99159a2
+paprefs_CXXFLAGS+=-DGLADE_FILE=\"$(gladedir)/paprefs.glade\" -DLOCALEDIR=\"$(localedir)\" -DMODDIR=\""$(LIBPULSE_MODLIBEXECDIR)"\" -DSHREXT=\"$(SHREXT)\"
99159a2
 
99159a2
 EXTRA_DIST = $(glade_DATA) $(desktop_in_files)
99159a2
 
99159a2
diff -up paprefs-0.9.10/src/Makefile.in.modules-path paprefs-0.9.10/src/Makefile.in
99159a2
--- paprefs-0.9.10/src/Makefile.in.modules-path	2011-09-27 10:26:18.000000000 +0200
99159a2
+++ paprefs-0.9.10/src/Makefile.in	2012-10-29 23:06:20.228909741 +0100
99159a2
@@ -164,7 +164,7 @@ LIBINTL = @LIBINTL@
99159a2
 LIBOBJS = @LIBOBJS@
99159a2
 LIBPULSE_CFLAGS = @LIBPULSE_CFLAGS@
99159a2
 LIBPULSE_LIBS = @LIBPULSE_LIBS@
99159a2
-LIBPULSE_MODLIBDIR = @LIBPULSE_MODLIBDIR@
99159a2
+LIBPULSE_MODLIBEXECDIR = @LIBPULSE_MODLIBEXECDIR@
99159a2
 LIBS = @LIBS@
99159a2
 LN_S = @LN_S@
99159a2
 LTLIBICONV = @LTLIBICONV@
99159a2
@@ -266,7 +266,7 @@ paprefs_LDADD = $(AM_LDADD) $(GUILIBS_LI
99159a2
 paprefs_CXXFLAGS = $(AM_CXXFLAGS) $(GUILIBS_CFLAGS) $(LIBPULSE_CFLAGS) \
99159a2
 	-DGLADE_FILE=\"$(gladedir)/paprefs.glade\" \
99159a2
 	-DLOCALEDIR=\"$(localedir)\" \
99159a2
-	-DMODLIBDIR=\""$(LIBPULSE_MODLIBDIR)/"\" \
99159a2
+	-DMODDIR=\""$(LIBPULSE_MODLIBEXECDIR)"\" \
99159a2
 	-DSHREXT=\"$(SHREXT)\"
99159a2
 EXTRA_DIST = $(glade_DATA) $(desktop_in_files)
99159a2
 CLEANFILES = $(desktop_DATA)
99159a2
diff -up paprefs-0.9.10/src/paprefs.cc.modules-path paprefs-0.9.10/src/paprefs.cc
99159a2
--- paprefs-0.9.10/src/paprefs.cc.modules-path	2011-03-20 15:01:13.000000000 +0100
99159a2
+++ paprefs-0.9.10/src/paprefs.cc	2012-10-29 23:06:20.230909757 +0100
99159a2
@@ -637,12 +637,25 @@ void MainWindow::readFromGConf() {
99159a2
 }
99159a2
 
99159a2
 gchar * MainWindow::modulePath(const gchar *name) {
99159a2
-  gchar *path, *pulsedir, *c;
99159a2
+  gchar *path, *c, **versions;
99159a2
 
99159a2
-  pulsedir = g_strdup_printf ("pulse-%d.%d", PA_MAJOR, PA_MINOR);
99159a2
+  versions = g_strsplit(pa_get_library_version(), ".", 3);
99159a2
+  if (versions[0] && versions[1]) {
99159a2
+      gchar *pulsedir, *search;
99159a2
 
99159a2
-  path = g_build_filename (MODLIBDIR, pulsedir, "modules", name, NULL);
99159a2
-  g_free (pulsedir);
99159a2
+      /* Remove the "/pulse-x.y/modules" suffix so we can dynamically inject
99159a2
+       * it again with runtime library version numbers */
99159a2
+      pulsedir = g_strdup_printf ("%s", MODDIR);
99159a2
+      if ((search = g_strrstr (pulsedir, G_DIR_SEPARATOR_S))) {
99159a2
+          *search = '\0';
99159a2
+          if ((search = g_strrstr (pulsedir, G_DIR_SEPARATOR_S)))
99159a2
+              *search = '\0';
99159a2
+      }
99159a2
+      path = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "pulse-%s.%s" G_DIR_SEPARATOR_S "modules" G_DIR_SEPARATOR_S "%s", pulsedir, versions[0], versions[1], name);
99159a2
+      g_free (pulsedir);
99159a2
+  } else
99159a2
+      path = g_build_filename (MODDIR, name, NULL);
99159a2
+  g_strfreev(versions);
99159a2
 
99159a2
   return path;
99159a2
 }