diff --git a/systems/x11/primary.c b/systems/x11/primary.c
index e7cff19..b0ae221 100644
--- a/systems/x11/primary.c
+++ b/systems/x11/primary.c
@@ -850,6 +850,18 @@ update_screen( DFBX11 *x11, const DFBRectangle *clip, CoreSurfaceBufferLock *loc
           XPutImage( xw->display, xw->window, xw->gc, ximage,
                      rect.x, rect.y + offset, rect.x, rect.y, rect.w, rect.h );
 
+     {
+          char             buf[100];
+          static long long first;
+
+          if (!first)
+               first = direct_clock_get_abs_millis();
+
+          snprintf( buf, sizeof(buf), "dfb_x11_%07lld_frame_%05lld", first / 1000 % 10000000, direct_clock_get_abs_millis() - first );
+
+          dfb_surface_buffer_dump( allocation->buffer, buf, NULL );
+     }
+
      /* Wait for display if single buffered and not converted... */
      if (direct && !(surface->config.caps & DSCAPS_FLIPPING))
           XSync( x11->display, False );
