     }
 
     //----------------------------------
-    //  selectable
-    //----------------------------------
-
-    [Inspectable(category="General", defaultValue="true")]
-
-    /**
-     *  @copy spark.components.RichEditableText#selectable
+    //  maxChars
+    //----------------------------------
+    
+    [Inspectable(category="General", defaultValue="0")]    
+
+    /**
+     *  @copy flash.text.TextField#maxChars
+     * 
+     *  @default 0
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get maxChars():int 
+    {
+        if (textDisplay)
+            return textDisplay.maxChars;
+            
+        // want the default to be 0
+        var v:* = textDisplayProperties.maxChars;
+        return (v === undefined) ? 0 : v;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set maxChars(value:int):void
+    {
+        if (textDisplay)
+        {
+            textDisplay.maxChars = value;
+            textDisplayProperties = BitFlagUtil.update(
+                uint(textDisplayProperties), MAX_CHARS_PROPERTY_FLAG, true);
+        }
+        else
+        {
+            textDisplayProperties.maxChars = value;
+        }
+
+        // Generate an UPDATE_COMPLETE event.
+        invalidateProperties();                    
+    }
+
+    //----------------------------------
+    //  restrict
+    //----------------------------------
+
+    [Inspectable(category="General", defaultValue="null")]
+
+    /**
+     *  @copy flash.text.TextField#restrict
+     * 
+     *  @default null
      *  
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
+    public function get restrict():String 
+    {
+        if (textDisplay)
+            return textDisplay.restrict;
+            
+        // want the default to be null
+        var v:* = textDisplayProperties.restrict;
+        return (v === undefined) ? null : v;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set restrict(value:String):void
+    {
+        if (textDisplay)
+        {
+            textDisplay.restrict = value;
+            textDisplayProperties = BitFlagUtil.update(
+                uint(textDisplayProperties), RESTRICT_PROPERTY_FLAG, true);
+        }
+        else
+        {
+            textDisplayProperties.restrict = value;
+        }
+
+        // Generate an UPDATE_COMPLETE event.
+        invalidateProperties();                    
+    }
+
+    //----------------------------------
+    //  selectable
+    //----------------------------------
+
+    [Inspectable(category="General", defaultValue="true")]
+
+    /**
+     *  A flag indicating whether the content is selectable.  On a Desktop, a user can 
+     *  select content with the mouse or with the keyboard when the control has 
+     *  keyboard focus.  On a touch interaction device, a user can select text with 
+     *  their fingers once they've entered into selection mode for the text component.
+     * 
+     *  <p><b>For the Spark theme, see
+     *  spark.components.RichEditableText.selectable</b></p>
+     *
+     *  <p><b>For the Mobile theme, see
+     *  spark.components.supportClasses.StyleableTextField.selectable</b></p>
+     * 
+     *  @see spark.components.RichEditableText#selectable
+     *  @see spark.components.supportClasses.StyleableTextField#selectable
+     *  
+     *  @default true
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
     public function get selectable():Boolean
     {
         if (textDisplay)

    [Inspectable(category="General", defaultValue="true")]

    /**
     *  @copy spark.components.RichEditableText#editable
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5


    /**
     *  @private
     *  Focus should always be on the internal textDisplay.
     */
    override public function setFocus():void
    {
