diff -ru cairo-1.15.6/src/win32/cairo-win32-printing-surface.c cairo-1.15.6b/src/win32/cairo-win32-printing-surface.c
--- cairo-1.15.6/src/win32/cairo-win32-printing-surface.c	2017-06-09 08:46:49.000000000 +0200
+++ cairo-1.15.6b/src/win32/cairo-win32-printing-surface.c	2017-07-26 21:41:09.380698500 +0200
@@ -335,7 +335,7 @@
 static cairo_bool_t
 surface_pattern_supported (const cairo_surface_pattern_t *pattern)
 {
-    if (_cairo_surface_is_recording (pattern->surface))
+    if (pattern->surface->type == CAIRO_SURFACE_TYPE_RECORDING)
 	return TRUE;
 
     if (pattern->surface->backend->acquire_source_image == NULL)
@@ -1119,7 +1119,7 @@
     case CAIRO_PATTERN_TYPE_SURFACE: {
 	cairo_surface_pattern_t *surface_pattern = (cairo_surface_pattern_t *) pattern;
 
-	if ( _cairo_surface_is_recording (surface_pattern->surface))
+	if (surface_pattern->surface->type == CAIRO_SURFACE_TYPE_RECORDING)
 	    status = _cairo_win32_printing_surface_paint_recording_pattern (surface, surface_pattern);
 	else
 	    status = _cairo_win32_printing_surface_paint_image_pattern (surface, pattern, extents);
