--- src/cairo-qt-surface.cpp.orig 2010-01-13 00:36:11.000000000 +0100 +++ src/cairo-qt-surface.cpp 2010-01-13 00:40:33.000000000 +0100 @@ -1555,7 +1555,10 @@ _cairo_qpainter_surface_flush (void *abstract_surface) { cairo_qpainter_surface_t *qs = (cairo_qpainter_surface_t *) abstract_surface; - + + if (!qs->p) + return CAIRO_STATUS_SURFACE_TYPE_MISMATCH; + QPaintDevice * dev = qs->p->device(); qs->p->end(); qs->p->begin(dev);