diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
index 3d796cd..b724e84 100644
--- a/gdk/wayland/gdkwindow-wayland.c
+++ b/gdk/wayland/gdkwindow-wayland.c
@@ -1258,9 +1258,13 @@ gdk_wayland_window_process_updates_recurse (GdkWindow *window,
 					    cairo_region_t *region)
 {
   GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
+  GdkDisplayWayland *display_wayland =
+    GDK_DISPLAY_WAYLAND (gdk_window_get_display (impl->wrapper));
   cairo_rectangle_int_t rect;
   int i, n;
 
+  cairo_device_flush (display_wayland->cairo_device);
+
   gdk_wayland_window_attach_image (window);
   if (!impl->mapped)
     {
