Index: gstobject.c
===================================================================
RCS file: /cvs/gstreamer/gstreamer/gst/gstobject.c,v
retrieving revision 1.79
diff -u -B -b -p -r1.79 gstobject.c
--- gstobject.c	2 Nov 2004 15:02:11 -0000	1.79
+++ gstobject.c	26 Nov 2004 18:29:42 -0000
@@ -59,6 +59,7 @@ GType _gst_object_type = 0;
 static GHashTable *object_name_counts = NULL;
 
 G_LOCK_DEFINE_STATIC (object_name_mutex);
+static GStaticRecMutex dispatch_mutex = G_STATIC_REC_MUTEX_INIT;
 
 typedef struct _GstSignalObject GstSignalObject;
 typedef struct _GstSignalObjectClass GstSignalObjectClass;
@@ -354,6 +355,8 @@ gst_object_dispatch_properties_changed (
   GstObject *gst_object;
   guint i;
 
+  g_static_rec_mutex_lock (&dispatch_mutex);
+
   /* do the standard dispatching */
   G_OBJECT_CLASS (parent_class)->dispatch_properties_changed (object, n_pspecs,
       pspecs);
@@ -374,6 +377,7 @@ gst_object_dispatch_properties_changed (
 
     gst_object = GST_OBJECT_PARENT (gst_object);
   }
+  g_static_rec_mutex_unlock (&dispatch_mutex);
 }
 
 /** 
