--- cairo-1.8.10/src/cairo-directfb-surface.c_orig 2010-07-06 08:40:43.569129921 +0200 +++ cairo-1.8.10/src/cairo-directfb-surface.c 2010-07-06 08:45:45.816819650 +0200 @@ -1439,6 +1439,7 @@ cache = scaled_font->surface_private; x = cache->x; y = cache->y; + h = cache->height; } for (i = 0; i < num_glyphs; i++) { @@ -1487,7 +1488,6 @@ if (x+img->width > 2048) { x = 0; y = h; - h = 0; } rects[n].x = x; @@ -1496,7 +1496,7 @@ rects[n].h = img->height; x += img->width; - h = MAX (h, img->height); + h = MAX (h, y+img->height); w = MAX (w, x); /* Remember glyph location */ @@ -1526,7 +1526,6 @@ return CAIRO_INT_STATUS_NOTHING_TO_DO; } - h += y; w = MAX (w, 8); h = MAX (h, 8);