             textView.addEventListener("textInvalid",
 									  textView_textInvalidHandler);
 
+            textView.addEventListener(FlexEvent.UPDATE_COMPLETE, 
+                                      textView_updateCompleteHandler);
         }
         
         // The scroller, between textView and this in the chain, should not 


		if (instance == textView)
		{
			// Set the RichEditableText to allow multiple lines of input.  
			// In default.css, the TextArea selector has a declaration
			// for lineBreak which sets it to "toFit".  It needs to be on
			// TextArea rather than RichEditableText so that if changed later it
			// will be inherited.  It needs to be set with the default
			// before the possibility that it is changed when TextArea is
			// created.  In this case, setting it here, would overwrite
			// that change.
			textView.heightInLines = 10;
			textView.multiline = true;
            textView.autoSize = false;


    /**
     *  @private
     *  Content changed or in process of being changed.
     */
    private function textView_textInvalidHandler(event:Event):void
    {
        mx_internal::textInvalid = true;
    }

    /**
     *  @private
     *  Called when the RichEditableText dispatches a 
     *  'FlexEvent.UPDATE_COMPLETE' event in response to validation being
     *  completed.  At this point, the textFlow is composed and the text
     *  can be extracted from the textFlow, if needed.
     */
    protected function textView_updateCompleteHandler(event:Event):void
    {
        // This handles the case where text or content is initially set and
        // no editing operations were done.  Since no editing operations
        // were done, a change event wasn't dispatched to trigger any bindings
        // on text or content.  The alternative is to let the RichEditableText
        // damageHandler dispatch for every updateDisplayList but that seems
        // much more expensive since the text may still be valid.
        if (!useTextFlowForContent)
        {
            useTextFlowForContent = true;
            dispatchEvent(new Event("change"));
       }
    }
}

