--- configure.in	2006-01-06 10:43:44.000000000 -0600
+++ configure.in	2006-01-06 11:45:37.000000000 -0600
@@ -462,25 +462,46 @@
 dnl ==============================================
 dnl GStreamer section
 dnl ==============================================
+GST_MAJORMINOR=auto
+
 AC_ARG_ENABLE(gstreamer,
-AC_HELP_STRING([--enable-gstreamer],[use gstreamer, if available]),
+AC_HELP_STRING([--enable-gstreamer],[use gstreamer, if available (and optionally specify a version)]),
 [case "${enableval}" in
  yes) ENABLE_GSTREAMER=yes ;;
+ 0.8) ENABLE_GSTREAMER=yes && GST_MAJORMINOR=0.8 ;;
+ 0.10) ENABLE_GSTREAMER=yes && GST_MAJORMINOR=0.10 ;;
  no)  ENABLE_GSTREAMER=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --enable-gstreamer) ;;
+ *) AC_MSG_ERROR([
+                  *** Bad value ${enableval} for --enable-gstreamer
+                  *** Please use one of the following:
+                  ***    --enable-gstreamer=0.8
+                  ***    --enable-gstreamer=0.10
+               ]) ;;
 esac],
 [ENABLE_GSTREAMER=yes]) dnl Default value
 
 if test "x$ENABLE_GSTREAMER" = "xyes"; then
    have_gstreamer=no
-   PKG_CHECK_MODULES(GST, gstreamer-interfaces-0.8 >= 0.8.0,
-		   have_gstreamer=yes,
-		   AC_MSG_RESULT(*** All of GStreamer dependent parts will be disabled ***))
+   if test x$GST_MAJORMINOR = xauto ; then
+      PKG_CHECK_MODULES(GST, gstreamer-0.8,[GST_MAJORMINOR=0.8],[GST_MAJORMINOR=0.10])
+   fi
+
+   if test x$GST_MAJORMINOR = x0.8 ; then
+      GST_REQS=0.8.0
+      PKGS="gstreamer-0.8 >= $GST_REQS gstreamer-interfaces-0.8 >= $GST_REQS"
+   else
+      GST_REQS=0.10.1
+      PKGS="gstreamer-0.10 >= $GST_REQS gstreamer-plugins-base-0.10 >= $GST_REQS"
+   fi
+
+   PKG_CHECK_MODULES(GST, $PKGS, have_gstreamer=yes,
+                     AC_MSG_RESULT([*** All of GStreamer dependent parts will be disabled ***]))
 else
    have_gstreamer=disabled
    AC_MSG_RESULT(*** GStreamer has been explicitly disabled ***)
 fi
 AM_CONDITIONAL(HAVE_GSTREAMER, test x"$have_gstreamer" = "xyes")
+AM_CONDITIONAL(HAVE_GST10, test x"$GST_MAJORMINOR" = "x0.10")
 AC_SUBST(GST_LIBS)
 AC_SUBST(GST_CFLAGS)
 
--- gnome-settings-daemon/actions/acme-volume-gstreamer.c	2006-01-06 11:16:09.000000000 -0600
+++ gnome-settings-daemon/actions/acme-volume-gstreamer.c	2006-01-06 11:29:21.000000000 -0600
@@ -27,9 +27,15 @@
 #include "config.h"
 #include "acme-volume-gstreamer.h"
 
+#ifdef HAVE_GST10
+#include <gst/gst.h>
+#include <gst/interfaces/mixer.h>
+#include <gst/interfaces/propertyprobe.h>
+#else
 #include <gst/gst.h>
 #include <gst/mixer/mixer.h>
 #include <gst/propertyprobe/propertyprobe.h>
+#endif
 
 #include <string.h>
 
@@ -240,7 +246,12 @@
 	 * appropriate mixer/track.  But now we do something stupid... everything
 	 * just becomes a no-op.
 	 */
+#ifdef HAVE_GST10
+   GstRegistry* default_registry = gst_registry_get_default ();
+   elements = gst_registry_get_feature_list (default_registry, GST_TYPE_ELEMENT_FACTORY);
+#else
 	elements = gst_registry_pool_feature_list (GST_TYPE_ELEMENT_FACTORY);
+#endif
 	for ( ; elements != NULL && self->_priv->mixer == NULL; elements = elements->next) {
 		GstElementFactory *factory = GST_ELEMENT_FACTORY (elements->data);
 		gchar *title = NULL;
@@ -280,8 +291,12 @@
 			
 			/* set this device */
 			g_object_set_property (G_OBJECT (element), "device", device);
-			if (gst_element_set_state (element,
-						   GST_STATE_READY) == GST_STATE_FAILURE)
+			if (gst_element_set_state (element, GST_STATE_READY) ==
+#ifdef HAVE_GST10
+               GST_STATE_CHANGE_FAILURE)
+#else
+               GST_STATE_FAILURE)
+#endif
 				continue;
 			
 			/* Is this device a mixer?  If so, add it to the list. */
--- gnome-settings-daemon/actions/Makefile.am	2006-01-06 11:50:40.000000000 -0600
+++ gnome-settings-daemon/actions/Makefile.am	2006-01-06 11:40:55.000000000 -0600
@@ -9,6 +9,10 @@
 libacme_la_LIBADD = 
 
 if HAVE_GSTREAMER
+if HAVE_GST10
+INCLUDES += -DHAVE_GST10
+libacme_la_LIBADD += -lgstinterfaces-0.10
+endif
 INCLUDES += -DHAVE_GSTREAMER
 libacme_la_SOURCES += acme-volume-gstreamer.c acme-volume-gstreamer.h
 libacme_la_LIBADD += $(GST_LIBS)
