Index: Source/cairo/CairoFontInfo.m
===================================================================
--- Source/cairo/CairoFontInfo.m	(révision 33814)
+++ Source/cairo/CairoFontInfo.m	(copie de travail)
@@ -351,6 +351,14 @@
   status = cairo_surface_status(isurface);
   if (status != CAIRO_STATUS_SUCCESS)
     {
+      if (status == CAIRO_STATUS_INVALID_STRIDE)
+	{
+	  NSLog(@"%@: CAIRO_STATUS_INVALID_STRIDE w %d h %d stride %d ",
+		NSStringFromSelector(_cmd),
+		(int)ix, (int)iy, 
+		(int)4*ix);
+	}
+
       NSLog(@"Error while creating surface: %s", 
             cairo_status_to_string(status));
       cairo_surface_destroy(isurface);
Index: Source/cairo/XGCairoXImageSurface.m
===================================================================
--- Source/cairo/XGCairoXImageSurface.m	(révision 33814)
+++ Source/cairo/XGCairoXImageSurface.m	(copie de travail)
@@ -66,7 +66,15 @@
                                                  CAIRO_FORMAT_ARGB32, 
                                                  wi->sx, wi->sy, 
                                                  wi->bytes_per_line);
-  
+
+  if (cairo_surface_status(_surface) == CAIRO_STATUS_INVALID_STRIDE)
+    {
+      NSLog(@"%@: CAIRO_STATUS_INVALID_STRIDE w %d h %d stride %d ",
+	    NSStringFromSelector(_cmd),
+	    (int)wi->sx, (int)wi->sy, 
+	    (int)wi->bytes_per_line);
+    }
+
   return self;
 }
 
Index: Source/cairo/CairoGState.m
===================================================================
--- Source/cairo/CairoGState.m	(révision 33828)
+++ Source/cairo/CairoGState.m	(copie de travail)
@@ -867,6 +867,14 @@
   status = cairo_surface_status(isurface);
   if (status != CAIRO_STATUS_SUCCESS)
     {
+      if (status == CAIRO_STATUS_INVALID_STRIDE)
+	{
+	  NSLog(@"%@: CAIRO_STATUS_INVALID_STRIDE w %d h %d stride %d ",
+		NSStringFromSelector(_cmd),
+		(int)ix, (int)iy, 
+		(int)4*ix);
+	}
+
       NSLog(@"Cairo status '%s' in GSReadRect", cairo_status_to_string(status));
       return nil;
     }
@@ -1113,6 +1121,14 @@
   status = cairo_surface_status(surface);
   if (status != CAIRO_STATUS_SUCCESS)
     {
+      if (status == CAIRO_STATUS_INVALID_STRIDE)
+	{
+	  NSLog(@"%@: CAIRO_STATUS_INVALID_STRIDE w %d h %d stride %d ",
+		NSStringFromSelector(_cmd),
+		(int)pixelsWide, (int)pixelsHigh, 
+		(int)pixelsWide * 4);
+	}
+
       NSLog(@"Cairo status '%s' in DPSimage", cairo_status_to_string(status));
       if (tmp)
         {
Index: Source/cairo/XGCairoSurface.m
===================================================================
--- Source/cairo/XGCairoSurface.m	(révision 33814)
+++ Source/cairo/XGCairoSurface.m	(copie de travail)
@@ -123,6 +123,14 @@
       src = cairo_xlib_surface_create(dpy, win, attrs.visual, attrs.width, attrs.height);
       dest = cairo_image_surface_create_for_data([bmp bitmapData], CAIRO_FORMAT_ARGB32, width, height, [bmp bytesPerRow]);
       
+      if (cairo_surface_status(dest) == CAIRO_STATUS_INVALID_STRIDE)
+	{
+	  NSLog(@"%@: CAIRO_STATUS_INVALID_STRIDE w %d h %d stride %d ",
+		NSStringFromSelector(_cmd),
+		(int)width, (int)height, 
+		(int)[bmp bytesPerRow]);
+	}
+
       {
 	cairo_t *cr = cairo_create(dest);
 	cairo_set_source_surface(cr, src, -1 * rect.origin.x, -1 * rect.origin.y);
