diff --git a/gfx/cairo/cairo/src/cairo-gstate.c b/gfx/cairo/cairo/src/cairo-gstate.c
--- a/gfx/cairo/cairo/src/cairo-gstate.c
+++ b/gfx/cairo/cairo/src/cairo-gstate.c
@@ -1841,16 +1841,17 @@ _cairo_gstate_show_text_glyphs (cairo_gs
 							transformed_glyphs,
 							&num_glyphs,
 							transformed_clusters);
 
     if (status || num_glyphs == 0)
 	goto CLEANUP_GLYPHS;
 
     _cairo_gstate_copy_transformed_source (gstate, &source_pattern.base);
+    _cairo_clip_init(&clip);
 
     /* For really huge font sizes, we can just do path;fill instead of
      * show_glyphs, as show_glyphs would put excess pressure on the cache,
      * not all components below us correctly handle huge font sizes, and
      * path filling can be cheaper since parts of glyphs are likely to be
      * clipped out.  256 seems like a good limit.  But alas, seems like cairo's
      * rasterizer is something like ten times slower than freetype's for huge
      * sizes.  So, no win just yet when we're using cairo's rasterizer.