         var newSegments:Array = [];
         
         var identifier:String;
-        var prevIdentifier:String;
+        var prevIdentifier:String = "";
         var prevX:Number = 0;
         var prevY:Number = 0;
         var lastMoveX:Number = 0;

            
            prevX = x;
            prevY = y;
            prevIdentifier = identifier.toLowerCase();
        }
        
        segments = newSegments;

                identifier = args[i];
                i++;
            }
            else if (prevIdentifier == "m" || prevIdentifier == "M")
            {
                // If a moveto is followed by multiple pairs of coordinates, 
                // the subsequent pairs are treated as implicit lineto commands. 
                identifier = prevIdentifier == "m" ? "l" : "L";
            }
            
            // Convert to lowercase to make the following comparison logic simpler
            prevIdentifier = prevIdentifier.toLowerCase();
            
            var useRelative:Boolean = (identifier.toLowerCase() == identifier);
            
