      *  <code>maxWidth</code> as you type. It grows in height when you 
      *  press the Enter key to start a new line.</p>
      *
-     *  <p>The <code>widthInChars</code> and <code>heightInChars</code>
+     *  <p>The <code>widthInChars</code> and <code>heightInLines</code>
      *  properties provide a convenient way to specify the width and height
      *  in a way that scales with the font size.
+	 *  You can use the <code>typicalText</code> property as well.
+	 *  Note that if you use <code>typicalText</code>, the
+     *  <code>widthInChars</code> and <code>heightInLines</code>
+     *  are ignored.
      *  You can also specify an explicit width or height in pixels,
      *  or use a percent width and height, or use constraints such as
      *  <code>left</code> and <code>right</code>

            dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));                                   
        }
        
        //----------------------------------
        //  widthInChars
        //----------------------------------

            if (isMeasureFixed()) 
            {            
                autoSize = false;
				
				if (typicalText)
				{
					if (typicalTextChanged)
					{
						// If the text has linebreaks (CR, LF, or CF+LF)
						// create a multi-paragraph TextFlow from it
						// and use the TextFlowTextLineFactory to render it.
						// Otherwise the StringTextLineFactory will put
						// all of the lines into a single paragraph
						// and FTE performance will degrade on a large paragraph.
						if (_typicalText.indexOf("\n") != -1 || _typicalText.indexOf("\r") != -1)
						{
							_typicalTextFlow = staticPlainTextImporter.importToFlow(_typicalText);
							// this helped get the factory to generate the same bounds as the
							// composer
							_typicalTextFlow.hostFormat = _textContainerManager.hostFormat;
						}
						else
							_typicalTextFlow = null;
						typicalTextChanged = false;
					}
					// if multiline...
					if (_typicalTextFlow)
					{
						// create the factory if needed
						if (!staticTextFlowFactory)
						{
							staticTextFlowFactory = new TextFlowTextLineFactory();
							// set bounds to natural bounds
							staticTextFlowFactory.compositionBounds = unbounded;
						}
						if (_typicalTextFlow.flowComposer)
						{
							_typicalTextFlow.flowComposer.swfContext = 
								ISWFContext(embeddedFontContext);
						}						
						staticTextFlowFactory.swfContext = ISWFContext(embeddedFontContext);
						// create the textlines
						staticTextFlowFactory.createTextLines(tossTextLine, _typicalTextFlow);
						// get the bounds
						bounds = staticTextFlowFactory.getContentBounds();
					}
					else // single line
					{
						// create the factory if needed
						if (!staticStringFactory)
						{
							staticStringFactory = new StringTextLineFactory();
							// set bounds to natural bounds
							staticStringFactory.compositionBounds = unbounded;
						}
						// create the textlines
						staticStringFactory.text = _typicalText;
						staticStringFactory.textFlowFormat = _textContainerManager.hostFormat;
						staticStringFactory.swfContext = ISWFContext(embeddedFontContext);
						staticStringFactory.createTextLines(tossTextLine);
						// get the bounds
						bounds = staticStringFactory.getContentBounds();
					}			
					
					measuredWidth = Math.ceil(bounds.width);
					measuredHeight = Math.ceil(bounds.height);					
				}
				else
				{
	                // Go large.  For performance reasons, want to avoid a scrollRect 
	                // whenever possible in drawBackgroundAndSetScrollRect().  This is
	                // particularly true for 1 line TextInput components.
	                measuredWidth = !isNaN(explicitWidth) ? explicitWidth :
	                    Math.ceil(calculateWidthInChars());
	                measuredHeight = !isNaN(explicitHeight) ? explicitHeight :
	                    Math.ceil(calculateHeightInLines());
				}
            }
            else
            {
                var composeWidth:Number;
                var composeHeight:Number;
                
                // If we're here, then at one or both of the width and height can
                // grow to fit the text.  It is important to figure out whether
