diff -up ghostscript-8.62/src/gdevbbox.c.r8591 ghostscript-8.62/src/gdevbbox.c --- ghostscript-8.62/src/gdevbbox.c.r8591 2007-09-25 14:31:24.000000000 +0100 +++ ghostscript-8.62/src/gdevbbox.c 2008-06-23 12:56:33.000000000 +0100 @@ -755,7 +755,21 @@ bbox_fill_path(gx_device * dev, const gs dev_proc(tdev, fill_path)); int code; - if (!GX_DC_IS_TRANSPARENT(pdevc, bdev) && !gx_path_is_void(ppath)) { + if (ppath == NULL) { + /* A special handling of shfill with no path. */ + gs_fixed_rect ibox; + gs_fixed_point adjust; + + if (pcpath == NULL) + return 0; + gx_cpath_inner_box(pcpath, &ibox); + adjust = params->adjust; + if (params->fill_zero_width) + gx_adjust_if_empty(&ibox, &adjust); + adjust_box(&ibox, adjust); + BBOX_ADD_RECT(bdev, ibox.p.x, ibox.p.y, ibox.q.x, ibox.q.y); + return 0; + } else if (!GX_DC_IS_TRANSPARENT(pdevc, bdev) && !gx_path_is_void(ppath)) { gs_fixed_rect ibox; gs_fixed_point adjust;