Index: gst/gstsegment.c
===================================================================
RCS file: /cvs/gstreamer/gstreamer/gst/gstsegment.c,v
retrieving revision 1.27
diff -u -r1.27 gstsegment.c
--- gst/gstsegment.c	5 Jun 2007 16:25:06 -0000	1.27
+++ gst/gstsegment.c	22 Oct 2007 15:42:43 -0000
@@ -421,7 +421,7 @@
     gdouble rate, gdouble applied_rate, GstFormat format, gint64 start,
     gint64 stop, gint64 time)
 {
-  gint64 duration;
+  gint64 duration = 0;
 
   g_return_if_fail (rate != 0.0);
   g_return_if_fail (applied_rate != 0.0);
@@ -442,14 +442,7 @@
 
   g_return_if_fail (segment->format == format);
 
-  if (update) {
-    /* an update to the current segment is done, elapsed time is
-     * difference between the old start and new start. */
-    if (start > segment->start)
-      duration = start - segment->start;
-    else
-      duration = 0;
-  } else {
+  if (!update) {
     /* the new segment has to be aligned with the old segment.
      * We first update the accumulated time of the previous
      * segment. the accumulated time is used when syncing to the
