             return;
 
         // Are there any adjustments to be made?
-        if (_lastDrawX == drawX && _lastDrawY == drawY)
+        if (lastDrawX == drawX && lastDrawY == drawY)
             return;
             
         for (var i:int = 0; i < n; i++)
         {
             var textLine:DisplayObject = textLines[i];
             
-            textLine.x +=  drawX - _lastDrawX;
-            textLine.y += drawY - _lastDrawY;
-        }
-
-        _lastDrawX = drawX;
-        _lastDrawY = drawY;
+            textLine.x = textLinesX[i] + drawX;
+            textLine.y = textLinesY[i] + drawY;
+        }
+
+        lastDrawX = drawX;
+        lastDrawY = drawY;
     }
     
     /**

			
            removeChildMethod(textLine);

            // Reset x and y to be relative to 0,0.
            textLine.x -= _lastDrawX;
            textLine.y -= _lastDrawY;
		}
		
		_lastDrawX = 0;
		_lastDrawY = 0;
	}

    /**

        }
        
        textLinesVector.length = 0;
        textLinesX.length = 0;
        textLinesY.length = 0;
   }

    /**
     *  @private
     *  If the text lines are in a shared container then x and y have to be
     *  adjusted if postLayoutTransformOffsets.x, postLayoutTransformOffsets.y,
	 *  layoutX or layoutY changes.
	 *  When these are changed, our updateDisplayList() is called
	 *  but if we don't recompose we may need to adjust the position
	 *  of the text lines.
     */
    mx_internal function adjustTextLines():void
    {
