     	// (which is the default state).
     	if (value == null)
     		value = "";
+		
+		// If the most recent change to _text was caused by calling this method,
+		// then it's safe to short-cicuit in the same way that TextBase does.
+		if ((source == "text") && (value == _text))
+			return;
     	
     	// Don't return early if value is the same as _text,
     	// because _text might have been produced from setting

    	
    	_text = value;
    	textChanged = true;
    	
    	// If more than one of 'text', 'textFlow', and 'content' is set,
    	// the last one set wins.

import flash.display.DisplayObject;
import flash.text.TextFormat;

import flashx.textLayout.compose.ISWFContext;
import flashx.textLayout.conversion.ConversionType;
import flashx.textLayout.conversion.ITextExporter;
