 	
 	private static const RADIANS_PER_DEGREES:Number = Math.PI / 180;
 	private static var transformMatrix:Matrix = new Matrix();
-    
+    private var nonRepeatSource:BitmapData;
+    private var regenerateNonRepeatSource:Boolean = true;
+    private var lastBoundsWidth:Number = 0;
+    private var lastBoundsHeight:Number = 0;
     
 	//--------------------------------------------------------------------------
 	//

            transformMatrix.rotate(rotation * RADIANS_PER_DEGREES);
            transformMatrix.translate(x + bounds.left + transformX, y + bounds.top + transformY);
        }
		target.beginBitmapFill(source as BitmapData, transformMatrix, repeat, smooth);
	}
	
	/**

	public function begin(target:Graphics, bounds:Rectangle):void
	{		
		if (!source)
			return;        
        
        var bd:BitmapData;
        var sourceAsBitmapData:BitmapData = source as BitmapData;
        
        if (compoundTransform)
        {
            transformMatrix = compoundTransform.matrix;
