     [RichTextContent]
         
     /**
+     *  This write-only property is for internal use by the MXML compiler.
+     *  Please use the <code>textFlow</code> property to set
+     *  rich text content.
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function set content(value:Object):void
+    {
+        // Of 'text', 'textFlow', and 'content', the last one set wins.
+        
+        setContent(value);
+    }
+    
+    //----------------------------------
+    //  textFlow
+    //----------------------------------
+
+    [Bindable("change")]
+    
+    /**
+     *  The TextFlow displayed by this component.
+     * 
+     *  <p>A TextFlow is the most important class
+     *  in the Text Layout Framework.
+     *  It is the root of a tree of FlowElements
+     *  representing rich text content.</p>
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get textFlow():TextFlow
+    {
+        return getTextFlow();
+    }
+
+    /**
+     *  @private
+     */
+    public function set textFlow(value:TextFlow):void
+    {
+        // Of 'text', 'textFlow', and 'content', the last one set wins.
+
+        setTextFlow(value);
+    }
+
+    //----------------------------------
+    //  heightInLines
+    //----------------------------------
+
+    /**
      *  Documentation is not currently available.
-     * 
-     *  A TextFlow object is not shareable.  To clone a TextFlow use
-     *  TextFlow.deepCopy().
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function get content():Object
-    {
-        return textView && useTextFlowForContent ? textView.textFlow : 
-                                                   getContent();
-    }
-
-    /**
-     *  @private
-     */
-    public function set content(value:Object):void
-    {
-        if (value == getContent())
-            return;
-
-        // Setting 'content' temporarily causes 'text' to become null.
-        // Later, after the 'content' has been committed into the TextFlow,
-        // getting 'text' will extract the text from the TextFlow.
-        super.text = null;
-        setContent(value);
-
-        useTextFlowForContent = false;
-    }
-    
-    //----------------------------------
-    //  heightInLines
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get heightInLines():Number
+    {
+        return getHeightInLines();
+    }
+
+    /**
+     *  @private
+     */
+    public function set heightInLines(value:Number):void
+    {
+        setHeightInLines(value);
+    }
+    
+    //----------------------------------
+    //  scroller
+    //----------------------------------
+
+    [SkinPart(required="false")]
+
+    /**
+     *  The optional Scroller used to scroll the RichEditableText.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public var scroller:Scroller;
+
+    //----------------------------------
+    //  widthInChars
     //----------------------------------
 
     /**

    //  content
    //----------------------------------

   /**
     *  @private
     *  Once the text or content is composed initially, the content getter
     *  will return the TextFlow, rather than the initial content.
     */
    private var useTextFlowForContent:Boolean = false;
    
    /**
     *  @private
     *  This metadata tells the MXML compiler to disable some of its default

    {
        super.partAdded(partName, instance);

        if (instance == textDisplay)
        {
            // In default.css, the TextArea selector has a declaration
            // for lineBreak which sets it to "toFit".  It needs to be on
