Splines are not dashed. -- The polygon tessellation routine has problems. It appears that the following paper has the right answers: http://cm.bell-labs.com/cm/cs/doc/93/2-27.ps.gz [Hobby93c] John D. Hobby, Practical Segment Intersection with Finite Precision Output, Computation Geometry Theory and Applications, 13(4), 1999. -- Stroking a self-intersecting path generates the wrong answer, (in mostly subtle ways). The fix is to tessellate a giant polygon for the entire stroke outline rather than incrementally generating trapezoids. -- Cairo is crashing Xnest with the following message: X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 72 (X_PutImage) Serial number of failed request: 28 Current serial number in output stream: 29 confirmed on a quite default install of debian unstable. -- cairo_scale_font modifies objects that the user expects to not change. For example: cairo_font_t *font; cairo_select_font (cr, "fixed", 0, 0); font = cairo_current_font (cr); cairo_scale_font (cr, 10); cairo_show_text (cr, "all is good"); cairo_set_font (cr, font); cairo_scale_font (cr, 10); cairo_show_text (cr, "WAY TOO BIG!!); We could fix this by not storing the scale in the font object. Or maybe we could just force the size to its default after set_font. Need to think about this in more detail. -- cairo_show_text is not updating the current point by the string's advance values. -- Caps are added only to the last subpath in a complex path. -- ref_counts will go negative if destroy is called with ref_count == 0. We noticed this is cairo_surface.c but it likely happens in several places.