diff -rup ../oog680-m5.orig/canvas/source/vcl/canvashelper.cxx canvas/source/vcl/canvashelper.cxx
--- ../oog680-m5.orig/canvas/source/vcl/canvashelper.cxx	2007-11-13 12:44:32.000000000 +0100
+++ canvas/source/vcl/canvashelper.cxx	2007-11-20 12:49:03.000000000 +0100
@@ -415,10 +415,23 @@ namespace vclcanvas
             
             for( USHORT i=0; i<nSize; ++i )
             {
-                mpOutDev->getOutDev().DrawPolygon( aVCLPolyPoly[i] );
-                
-                if( mp2ndOutDev )
-                    mp2ndOutDev->getOutDev().DrawPolygon( aVCLPolyPoly[i] );
+                if( aStrokedPolyPoly.getB2DPolygon( i ).isClosed() ) {
+                    mpOutDev->getOutDev().DrawPolygon( aVCLPolyPoly[i] );
+                    if( mp2ndOutDev )
+                        mp2ndOutDev->getOutDev().DrawPolygon( aVCLPolyPoly[i] );
+                } else {
+                    USHORT nPolySize = aVCLPolyPoly[i].GetSize();
+                    Point rPrevPoint = aVCLPolyPoly[i].GetPoint( 0 );
+                    Point rPoint;
+
+                    for( USHORT j=1; j<nPolySize; j++ ) {
+                        rPoint = aVCLPolyPoly[i].GetPoint( j );
+                        mpOutDev->getOutDev().DrawLine( rPrevPoint, rPoint );
+                        if( mp2ndOutDev )
+                            mp2ndOutDev->getOutDev().DrawLine( rPrevPoint, rPoint );
+                        rPrevPoint = rPoint;
+                    }
+                }
             }
         }
 
