diff --git a/ui/gtk.c b/ui/gtk.c
index 8da673c18c72ba73f2be37cbf4c444a5a04152a8..d2892ea6b4a97c78496697f5f4fe52e17e5555d9 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -778,6 +778,9 @@ static gboolean gd_draw_event(GtkWidget *widget, cairo_t *cr, void *opaque)
     if (!vc->gfx.ds) {
         return FALSE;
     }
+    if (!vc->gfx.surface) {
+        return FALSE;
+    }
 
     vc->gfx.dcl.update_interval =
         gd_monitor_update_interval(vc->window ? vc->window : s->window);