Index: src/cairo-ft-font.c =================================================================== RCS file: /cvs/cairo/cairo/src/cairo-ft-font.c,v retrieving revision 1.115 diff -u -p -r1.115 cairo-ft-font.c --- src/cairo-ft-font.c 21 Dec 2005 16:19:47 -0000 1.115 +++ src/cairo-ft-font.c 24 Apr 2006 07:38:37 -0000 @@ -1081,8 +1081,10 @@ _render_glyph_bitmap (FT_Face fac * Y coordinate of the control box needs to be negated. */ - (*surface)->base.device_x_offset = glyphslot->bitmap_left; - (*surface)->base.device_y_offset = -glyphslot->bitmap_top; + if (*surface != NULL) { + (*surface)->base.device_x_offset = glyphslot->bitmap_left; + (*surface)->base.device_y_offset = -glyphslot->bitmap_top; + } return status; } Index: src/cairo-xlib-surface.c =================================================================== RCS file: /cvs/cairo/cairo/src/cairo-xlib-surface.c,v retrieving revision 1.128 diff -u -p -r1.128 cairo-xlib-surface.c --- src/cairo-xlib-surface.c 16 Dec 2005 11:02:35 -0000 1.128 +++ src/cairo-xlib-surface.c 24 Apr 2006 07:38:38 -0000 @@ -2074,6 +2074,9 @@ _cairo_xlib_surface_add_glyph (Display * cairo_xlib_surface_font_private_t *font_private; cairo_image_surface_t *glyph_surface = scaled_glyph->surface; + if (glyph_surface == NULL) + return CAIRO_STATUS_NULL_POINTER; + if (scaled_font->surface_private == NULL) { status = _cairo_xlib_surface_font_init (dpy, scaled_font, glyph_surface->format);