 				FLAG_GRAPHICS_INVALID);
 				
 		invalidate();
+	}
+	
+	//----------------------------------
+	//  scrollRect
+	//----------------------------------
+	
+	/*
+	 *  Workaround for a Flash Player problem.
+	 *  Don't read the scrollRect property if its value has not been set,
+	 *  because this will cause a large memory allocation.
+	 *  And ignore attempts to reset the scrollRect property to null
+	 *  (its default value) if we've never set it. 
+	 */
+	
+	/**
+	 *  @private
+	 */
+	override public function get scrollRect():Rectangle
+	{
+		return testFlag(FLAG_HAS_SCROLL_RECT) ? super.scrollRect : null;
+	}
+	
+	/**
+	 *  @private 
+	 */
+	override public function set scrollRect(value:Rectangle):void
+	{
+		if (!testFlag(FLAG_HAS_SCROLL_RECT) && !value)
+			return;
+		setFlag(FLAG_HAS_SCROLL_RECT);
+		super.scrollRect = value;
 	}
 	
 	//----------------------------------

import flash.events.TextEvent;
import flash.geom.Rectangle;
import flash.text.StyleSheet;
import flash.text.TextFieldAutoSize;
import flash.text.TextFieldType;
import flash.text.TextFormat;

	 */
	public function get styleSheet():StyleSheet
	{
		// Note: TextField does NOT return a copy of the StyleSheet.
		return _styleSheet;
	}
	
	/**
