 	{
 		if (value != _content)
 		{
+            // 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.
+            mx_internal::_text = null;
+            textChanged = false;
+
 			var oldValue:Object = _content;
 			_content = value;
 			dispatchPropertyChangeEvent("content", oldValue, value);

import flashx.tcal.formats.IParagraphFormat;
import flashx.tcal.formats.ParagraphFormat;

import mx.graphics.graphicsClasses.TextFlowComposer;
import mx.graphics.graphicsClasses.TextGraphicElement;
import mx.utils.TextUtil;

	 */
	private var contentChanged:Boolean = false;

    /**
     *  @private
     *  This flag is set to true if the 'text' needs to be extracted
     *  from the 'content'.
     */
    private var textInvalid:Boolean = false;
        
	//--------------------------------------------------------------------------
	//
	//  Overridden properties
	//
	//--------------------------------------------------------------------------

	//----------------------------------
	//  text
	//----------------------------------

	/**
	 *  @private
	 */
    override public function get text():String
    {
        // Extracting the plaintext from a TextFlow is somewhat expensive,
        // as it involves iterating over the leaf FlowElements in the TextFlow.
        // Therefore we do this extraction only when necessary, namely when
        // you set the 'content' and then get the 'text'.
        if (textInvalid)
        {
            mx_internal::_text = TextUtil.extractText(textFlow);
            textInvalid = false;
        }

        return mx_internal::_text;
    }

	/**
	 *  @private
	 */
    override public function set text(value:String):void
    {
		// If 'text' is being set after 'content', ignore it
        // because 'content' has precedence.
        if (contentChanged)
            return;

        // Setting 'text' temporarily causes 'content' to become null.
        // Later, after the 'text' has been committed into the TextFlow,
        // getting 'content' will return the TextFlow.
        _content = null;
        contentChanged = false;
        
        super.text = value;
    }

	//--------------------------------------------------------------------------
	//
	//  Properties
