--- gstgnomevfssrc.c.orig	2005-07-31 02:32:55.131700112 -0400
+++ gstgnomevfssrc.c	2005-07-31 02:33:50.901757607 -0400
@@ -1155,7 +1155,8 @@
   if (!audiocast_init (src))
     return FALSE;
 
-  gst_gnomevfssrc_push_callbacks (src);
+  if (src->iradio_mode)
+    gst_gnomevfssrc_push_callbacks (src);
 
   if (src->uri != NULL) {
     result = gnome_vfs_open_uri (&(src->handle), src->uri,
@@ -1173,7 +1174,8 @@
       gchar *filename = gnome_vfs_uri_to_string (src->uri,
           GNOME_VFS_URI_HIDE_PASSWORD);
 
-      gst_gnomevfssrc_pop_callbacks (src);
+      if (src->iradio_mode)
+        gst_gnomevfssrc_pop_callbacks (src);
       audiocast_thread_kill (src);
 
       GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ,
@@ -1224,7 +1226,8 @@
 {
   g_return_if_fail (GST_FLAG_IS_SET (src, GST_GNOMEVFSSRC_OPEN));
 
-  gst_gnomevfssrc_pop_callbacks (src);
+  if (src->iradio_mode)
+    gst_gnomevfssrc_pop_callbacks (src);
   audiocast_thread_kill (src);
 
   if (src->own_handle) {
