Correct usage of a scratch array in X11DRV_PolyBezier.

diff --git a/graphics/x11drv/graphics.c b/graphics/x11drv/graphics.c
index c56fa26..70c715c 100644
--- a/graphics/x11drv/graphics.c
+++ b/graphics/x11drv/graphics.c
@@ -1387,23 +1387,24 @@
     TRACE("dc=%p count=%ld %ld,%ld - %ld,%ld - %ld,%ld - %ld,%ld\n", 
             dc, count,
             start.x, start.y,
-            (Points+0)->x, (Points+0)->y, 
-            (Points+1)->x, (Points+1)->y, 
-            (Points+2)->x, (Points+2)->y); 
+            (BezierPoints+0)->x, (BezierPoints+0)->y, 
+            (BezierPoints+1)->x, (BezierPoints+1)->y, 
+            (BezierPoints+2)->x, (BezierPoints+2)->y); 
     if(!count || count % 3){/* paranoid */
         WARN(" bad value for count : %ld\n", count);
         return FALSE; 
     }
     xpoints=(XPoint*) xmalloc( sizeof(XPoint)*BEZMAXPOINTS);
-    Points[3].x=BEZIERSHIFTUP(XLPTODP(dc,start.x));
-    Points[3].y=BEZIERSHIFTUP(YLPTODP(dc,start.y));
+    start.x=BEZIERSHIFTUP(XLPTODP(dc,start.x));
+    start.y=BEZIERSHIFTUP(YLPTODP(dc,start.y));
     while(count){
-        Points[0]=Points[3];
+        Points[0]=start;
         for(i=1;i<4;i++) {
             Points[i].x= BEZIERSHIFTUP(XLPTODP(dc,BezierPoints->x));
             Points[i].y= BEZIERSHIFTUP(YLPTODP(dc,BezierPoints->y));
             BezierPoints++;
         }
+        start=Points[3];
         X11DRV_Bezier(BEZIERMAXDEPTH , dc, Points, xpoints, &ix );
         count -=3;
     }