diff -ru cairo-1.12.14/src/cairo-type1-subset.c cairo-1.12.14-msg/src/cairo-type1-subset.c --- cairo-1.12.14/src/cairo-type1-subset.c 2013-02-07 15:37:46.000000000 -0600 +++ cairo-1.12.14-msg/src/cairo-type1-subset.c 2013-07-25 11:25:25.940425994 -0500 @@ -1130,6 +1130,7 @@ int length; int subset_id; int ch; + char *waname; if (font->glyphs[glyph_number].subset_index < 0) return CAIRO_STATUS_SUCCESS; @@ -1143,8 +1144,11 @@ subset_id = font->glyphs[glyph_number].subset_index; if (subset_id > 0) { ch = font->scaled_font_subset->to_latin_char[subset_id]; - name = _cairo_winansi_to_glyphname (ch); - name_length = strlen(name); + waname = _cairo_winansi_to_glyphname (ch); + if(waname) { + name = waname; + name_length = strlen(name); + } } }