Now that we have a region type, shall we just deprecate cairo_rectangle_list_t? We would then add a: cairo_copy_clip_region () Also, personally I wouldn't mind seeing cairo_region_get_rectangles() that returns a pointer to the internally-owned rectangle array (which would be only valid as long as the region is not modified). behdad