diff -u gst-plugins-ugly-0.10.11.orig/ext/dvdread/dvdreadsrc.c gst-plugins-ugly-0.10.11/ext/dvdread/dvdreadsrc.c
--- gst-plugins-ugly-0.10.11.orig/ext/dvdread/dvdreadsrc.c	2009-08-12 21:47:13.000000000 +0100
+++ gst-plugins-ugly-0.10.11/ext/dvdread/dvdreadsrc.c	2009-08-12 21:50:42.000000000 +0100
@@ -130,6 +130,7 @@
 
   src->location = g_strdup ("/dev/dvd");
   src->last_uri = NULL;
+  src->first_seek = TRUE;
   src->new_seek = TRUE;
   src->new_cell = TRUE;
   src->change_cell = FALSE;
@@ -1169,6 +1170,11 @@
 
   src = GST_DVD_READ_SRC (basesrc);
 
+  if(src->first_seek) {
+    src->first_seek = FALSE;
+    return TRUE;
+  }
+
   GST_DEBUG_OBJECT (src, "Seeking to %s: %12" G_GINT64_FORMAT,
       gst_format_get_name (s->format), s->last_stop);
 
diff -u gst-plugins-ugly-0.10.11.orig/ext/dvdread/dvdreadsrc.h gst-plugins-ugly-0.10.11/ext/dvdread/dvdreadsrc.h
--- gst-plugins-ugly-0.10.11.orig/ext/dvdread/dvdreadsrc.h	2009-08-12 21:47:13.000000000 +0100
+++ gst-plugins-ugly-0.10.11/ext/dvdread/dvdreadsrc.h	2009-08-12 21:53:15.000000000 +0100
@@ -49,6 +49,7 @@
   gchar           *location;
   gchar           *last_uri;
 
+  gboolean         first_seek;
   gboolean         new_seek;
   gboolean         change_cell;
 
