         var newSegments:Array = [];
         
         var identifier:String;
+        var prevIdentifier:String;
         var prevX:Number = 0;
         var prevY:Number = 0;
+        var lastMoveX:Number = 0;
+        var lastMoveY:Number = 0;
         var x:Number;
         var y:Number;
         var controlX:Number;

                    break;
                case "z":
                    newSegments.push(new CloseSegment());
                    break;
                
                default:

        var sx:Number = naturalBounds.width == 0 ? 1 : width / naturalBounds.width;
        var sy:Number = naturalBounds.height == 0 ? 1 : height / naturalBounds.height; 

        var prevSegment:PathSegment;
        var pathBBox:Rectangle;
        var lastMoveX:Number = 0;
        var lastMoveY:Number = 0;
        
        for (var i:int = 0; i < segments.length; i++)
        {
            var segment:PathSegment = segments[i];
            
            if (segment is MoveSegment)
            {
                lastMoveX = segment.x;
                lastMoveY = segment.y;
            }
            else if (segment is CloseSegment)
            {   
                segment = new LineSegment(lastMoveX, lastMoveY);     
            }

            pathBBox = segment.getBoundingBox(prevSegment, sx, sy, m, pathBBox);
