         if (graphicsPathChanged)
         {
             var rcBounds:Rectangle = getBounds();
-            var sx:Number = rcBounds.width == 0 ? 1 : width/rcBounds.width;
-            var sy:Number = rcBounds.height == 0 ? 1 : height/rcBounds.height;
-                        
-            generateGraphicsPath(drawX,drawY,sx,sy);
+            var sx:Number = rcBounds.width == 0 ? 1 : width / rcBounds.width;
+            var sy:Number = rcBounds.height == 0 ? 1 : height / rcBounds.height;
+
+            generateGraphicsPath(drawX, drawY, sx, sy);
             graphicsPathChanged = false;
         }
          

        // the path will begin at the previous pen location
        // if it does not start with a MoveSegment.
        graphicsPath.moveTo(tx, ty);
        var lastMoveX:Number = tx;
        var lastMoveY:Number = ty;
        
        for (var i:int = 0; i < segments.length; i++)
        {
            var segment:PathSegment = segments[i];
                    
            segment.draw(graphicsPath, tx,ty,sx,sy, (i > 0 ? segments[i - 1] : null));
                        
            if (segment is MoveSegment)
            {
                lastMoveX = segment.x;
                lastMoveY = segment.y;
            }
            else if (segment is CloseSegment)
            {   
                graphicsPath.lineTo(tx + lastMoveX * sx, ty + lastMoveY * sy);    
            }
        }
    }
    

    override public function draw(graphicsPath:GraphicsPath, dx:Number,dy:Number,sx:Number,sy:Number,prev:PathSegment):void
    {
        graphicsPath.moveTo(dx+x*sx, dy+y*sy);
    }
}

