=== modified file 'sys/xvimage/xvimagesink.c'
--- sys/xvimage/xvimagesink.c	2008-07-28 15:45:53 +0000
+++ sys/xvimage/xvimagesink.c	2008-07-31 15:54:13 +0000
@@ -2191,6 +2191,9 @@
 
   xvimagesink = GST_XVIMAGESINK (bsink);
 
+  if (GST_IS_SUBBUFFER (buf) && GST_IS_XVIMAGE_BUFFER (GST_SUBBUFFER_PARENT (buf)))
+    buf = GST_SUBBUFFER_PARENT (buf);
+
   /* If this buffer has been allocated using our buffer management we simply
      put the ximage which is in the PRIVATE pointer */
   if (GST_IS_XVIMAGE_BUFFER (buf)) {

