         	selectionFormatsChanged = false;
         }
 
+        // If the text has line-ending sequences such as LF or CR+LF, 
+        // a TextFlow with multiple paragraph is produced as the 'content'. 
+        // Otherwise all of the multi-line text got stuffed into one span in 
+        // one paragraph. But when you have a large paragraph 
+        // (i.e., a large TextBlock), FTE is slow to break the first 
+        // TextLine because it analyzes all of the text first.       
+        if (textChanged && textHasLineBreaks())
+            content = importToFlow(_text);
+                          
         if (textChanged)
         {
         	if (debug)

        // is a selection.    
        if (getFocus() == this)
        {
            content = value;
            return;
        }
                    
        // Setting 'text' temporarily causes 'content' to become null.

     *  @private
     *  This will throw on import error.
     */
    private function importToFlow(source:Object, 
                                  format:String = TextFilter.PLAIN_TEXT_FORMAT, 
                                  config:Configuration = null):TextFlow
    {
        var importer:ITextImporter = TextFilter.getImporter(format, config);
        
        // Throw import errors rather than return a null textFlow.
        // Alternatively, the error strings are in the Vector, importer.errors.
