=== modified file 'plugins/elements/gstmultiqueue.c'
--- plugins/elements/gstmultiqueue.c	2008-06-11 09:45:22 +0000
+++ plugins/elements/gstmultiqueue.c	2008-06-11 14:34:18 +0000
@@ -634,9 +634,10 @@
       "queue %d, sink %" GST_TIME_FORMAT ", src %" GST_TIME_FORMAT, sq->id,
       GST_TIME_ARGS (sink_time), GST_TIME_ARGS (src_time));
 
-  /* This allows for streams with out of order timestamping - sometimes the 
+  /* This allows for streams with out of order timestamping - sometimes the
    * emerging timestamp is later than the arriving one(s) */
-  if (sink_time >= src_time)
+  if (sink_time != GST_CLOCK_TIME_NONE && src_time != GST_CLOCK_TIME_NONE
+      && sink_time >= src_time)
     sq->cur_time = sink_time - src_time;
   else
     sq->cur_time = 0;
@@ -1382,9 +1383,13 @@
     /* if we have valid time in the queue, check */
     res = IS_FILLED (time, sq->cur_time);
   } else {
-    /* no valid time, check bytes */
+    /* no valid time, checking the duration */
+    res = IS_FILLED (time, time);
+  } 
+
+  if (!res)
     res = IS_FILLED (bytes, bytes);
-  }
+
   return res;
 }
 

