diff --git a/examples/test-launch.c b/examples/test-launch.c
index 2a2242d..ebe9cac 100644
--- a/examples/test-launch.c
+++ b/examples/test-launch.c
@@ -52,6 +52,7 @@ main (int argc, char *argv[])
    * any launch line works as long as it contains elements named pay%d. Each
    * element with pay%d names will be a stream */
   factory = gst_rtsp_media_factory_new ();
+  gst_rtsp_media_factory_set_shared ( factory, TRUE);
   gst_rtsp_media_factory_set_launch (factory, argv[1]);
 
   /* attach the test factory to the /test url */
diff --git a/gst/rtsp-server/rtsp-client.c b/gst/rtsp-server/rtsp-client.c
index 9f78f85..10a82fd 100644
--- a/gst/rtsp-server/rtsp-client.c
+++ b/gst/rtsp-server/rtsp-client.c
@@ -1972,7 +1972,7 @@ static GstRTSPWatchFuncs watch_funcs = {
 static void
 client_watch_notify (GstRTSPClient * client)
 {
-  GST_INFO ("client %p: watch destroyed", client);
+  fprintf (stderr, "*******client->watch destroyed %p->%p\n", client, client->watch);
   client->watchid = 0;
   client->watch = NULL;
   g_signal_emit (client, gst_rtsp_client_signals[SIGNAL_CLOSED], 0, NULL);
@@ -2039,7 +2039,7 @@ gst_rtsp_client_accept (GstRTSPClient * client, GIOChannel * channel)
 
   /* FIXME make this configurable. We don't want to do this yet because it will
    * be superceeded by a cache object later */
-  gst_rtsp_watch_set_send_backlog (client->watch, 0, 100);
+//  gst_rtsp_watch_set_send_backlog (client->watch, 0, 100);
 
   /* find the context to add the watch */
   if ((source = g_main_current_source ()))
diff --git a/gst/rtsp-server/rtsp-media.c b/gst/rtsp-server/rtsp-media.c
index ca7284b..c32cd9e 100644
--- a/gst/rtsp-server/rtsp-media.c
+++ b/gst/rtsp-server/rtsp-media.c
@@ -1213,12 +1213,16 @@ on_timeout (GObject * session, GObject * source, GstRTSPMediaStream * stream)
   }
 }
 
+#include <stdio.h>
+#include <unistd.h>
+
 static GstFlowReturn
 handle_new_buffer (GstAppSink * sink, gpointer user_data)
 {
   GList *walk;
   GstBuffer *buffer;
   GstRTSPMediaStream *stream;
+  int i = 0;
 
   buffer = gst_app_sink_pull_buffer (sink);
   if (!buffer)
@@ -1230,8 +1234,16 @@ handle_new_buffer (GstAppSink * sink, gpointer user_data)
     GstRTSPMediaTrans *tr = (GstRTSPMediaTrans *) walk->data;
 
     if (GST_ELEMENT_CAST (sink) == stream->appsink[0]) {
+      GstRTSPClient * client = tr->user_data;
+
       if (tr->send_rtp)
+      {
+    	fprintf(stderr, "kill client %p now ..", client);
+    	sleep(5);
+    	fprintf(stderr, "\tsending data to watch %p->%p (%d)..", client, client->watch, i++);
         tr->send_rtp (buffer, tr->transport->interleaved.min, tr->user_data);
+        fprintf(stderr, "done\n");
+      }
     } else {
       if (tr->send_rtcp)
         tr->send_rtcp (buffer, tr->transport->interleaved.max, tr->user_data);
