Index: win/tkWinGDI.c
==================================================================
--- win/tkWinGDI.c
+++ win/tkWinGDI.c
@@ -561,11 +561,11 @@
 
 static int Bezierize(
     POINT* polypoints,
     int npoly,
     int nStep,
-    POINT* bpointptr)
+    POINT** bpointptr)
 {
     /* First, translate my points into a list of doubles. */
     double *inPointList, *outPointList;
     int n;
     int nbpoints = 0;
@@ -604,11 +604,11 @@
     for (n=0; n<nbpoints; n++) {
 	bpoints[n].x = (long)outPointList[2*n];
 	bpoints[n].y = (long)outPointList[2*n + 1];
     }
     ckfree(outPointList);
-    *bpointptr = *bpoints;
+    *bpointptr = bpoints;
     return nbpoints;
 }
 
 /*
  *----------------------------------------------------------------------
@@ -809,19 +809,19 @@
 	GdiMakeBrush(linecolor, 0, &lbrush, hDC, &hBrush);
     }
 
     if (dosmooth) { /* Use PolyBezier. */
 	int nbpoints;
-	POINT *bpoints = 0;
+	POINT *bpoints = NULL;
 
-	nbpoints = Bezierize(polypoints,npoly,nStep,bpoints);
+	nbpoints = Bezierize(polypoints, npoly, nStep, &bpoints);
 	if (nbpoints > 0) {
 	    Polyline(hDC, bpoints, nbpoints);
 	} else {
 	    Polyline(hDC, polypoints, npoly); /* Out of memory? Just draw a regular line. */
 	}
-	if (bpoints != 0) {
+	if (bpoints != NULL) {
 	    ckfree(bpoints);
 	}
     } else {
 	Polyline(hDC, polypoints, npoly);
     }
@@ -1187,18 +1187,19 @@
 		linecolor, hDC, (HGDIOBJ *)&hPen);
     }
 
     if (dosmooth) {
 	int nbpoints;
-	POINT *bpoints = 0;
-	nbpoints = Bezierize(polypoints,npoly,nStep,bpoints);
+	POINT *bpoints = NULL;
+
+	nbpoints = Bezierize(polypoints, npoly, nStep, &bpoints);
 	if (nbpoints > 0) {
 	    Polygon(hDC, bpoints, nbpoints);
 	} else {
 	    Polygon(hDC, polypoints, npoly);
 	}
-	if (bpoints != 0) {
+	if (bpoints != NULL) {
 	    ckfree(bpoints);
 	}
     } else {
 	Polygon(hDC, polypoints, npoly);
     }

