--- a/src/backend/bacon-video-widget-gst-0.10.c
+++ b/src/backend/bacon-video-widget-gst-0.10.c
@@ -6183,8 +6183,6 @@
       cb_gconf, bvw, NULL, NULL);
 
   if (type == BVW_USE_TYPE_VIDEO || type == BVW_USE_TYPE_AUDIO) {
-    audio_sink = gst_element_factory_make ("pulsesink", "audio-sink");
-    if (audio_sink == NULL) {
       audio_sink = gst_element_factory_make ("gconfaudiosink", "audio-sink");
       if (audio_sink == NULL) {
 	g_warning ("Could not create element 'gconfaudiosink'");
@@ -6195,7 +6193,6 @@
 	if (g_object_class_find_property (G_OBJECT_GET_CLASS (audio_sink), "profile"))
 	  g_object_set (G_OBJECT (audio_sink), "profile", 1, NULL);
       }
-    }
   } else {
     audio_sink = gst_element_factory_make ("fakesink", "audio-fake-sink");
   }
@@ -6347,7 +6344,7 @@
 
     /* If we're using a sink that has a volume property, then that's what
      * we need to modify, not playbin's one */
-    if (g_object_class_find_property (G_OBJECT_GET_CLASS (audio_sink), "volume")) {
+    if (GST_IS_BIN (audio_sink) && gst_bin_get_by_name (GST_BIN (audio_sink), "pulsesink")) {
       bvw->priv->pulse_audio_sink = g_object_ref (audio_sink);
       g_signal_connect (G_OBJECT (bvw->priv->pulse_audio_sink), "notify::volume",
 			G_CALLBACK (notify_volume_cb), bvw);
