diff -rup canvas-orig/source/cairo/cairo_canvashelper.cxx canvas/source/cairo/cairo_canvashelper.cxx
--- canvas-orig/source/cairo/cairo_canvashelper.cxx	2007-11-12 10:22:37.000000000 +0100
+++ canvas/source/cairo/cairo_canvashelper.cxx	2007-11-12 15:06:43.000000000 +0100
@@ -1270,7 +1270,8 @@ namespace cairocanvas
 					Cairo* pCairo = pScaledSurface->getCairo();
 
 					// cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
-					cairo_scale( pCairo, dWidth/rSize.Width, dHeight/rSize.Height );
+                    // add 0.5px to size to avoid rounding errors in cairo, leading sometimes to random data on the image right/bottom borders
+					cairo_scale( pCairo, (dWidth+0.5)/rSize.Width, (dHeight+0.5)/rSize.Height );
 					cairo_set_source_surface( pCairo, pSurface->mpSurface, 0, 0 );
 					cairo_paint( pCairo );
 
