--- gst/qtdemux/qtdemux.c	2009-09-22 18:35:34.000000000 +0200
+++ gst/qtdemux/qtdemux.c.new	2009-09-22 18:36:53.000000000 +0200
@@ -3607,6 +3607,11 @@ qtdemux_parse_samples (GstQTDemux * qtde
       if (G_UNLIKELY (stream->min_duration == 0))
         stream->min_duration = duration;
 
+	  if(duration > 0xFFFF0000) {
+		GST_DEBUG_OBJECT(qtdemux,"seem to have an invalid duration use min duration instead");
+		duration = stream->min_duration;
+	  }
+
       for (j = 0; j < n; j++) {
         GST_DEBUG_OBJECT (qtdemux,
             "sample %d: index %d, timestamp %" GST_TIME_FORMAT, index, j,
