      */
     private function textFlow_damageHandler(event:DamageEvent):void
     {
-        //trace("damageHandler", "damageStart", event.damageStart, "damageLength", event.damageLength);
-                
-        // No changes so don't recompose.  The TextFlowFactory 
+        // If the target is the current textFlow then check the generation.
+        // If there are no changes, don't recompose.  The TextFlowFactory
         // createTextLines dispatches damage events every time the textFlow
         // is composed, even if there are no changes.
-        if (_textFlow.generation == lastGeneration)
-            return;
-
-        lastGeneration = _textFlow.generation;
-                
+        if (TextFlow(event.target) == _textFlow)
+        { 
+            if (_textFlow.generation == lastGeneration)
+                return;
+            
+            // Update the last know generation for _textFlow.
+            lastGeneration = _textFlow.generation;
+        }
+
         // Invalidate _text and _content.
         _text = null;
         _content = null;

        	// If 'content' was last set,
        	// we have to first turn that into a TextFlow.
        	if (_content != null)
	        	_textFlow = createTextFlowFromContent(_content);
	        		
            // Once we have a TextFlow, we can export its plain text.
            _text = staticPlainTextExporter.export(


    /**
     *  @private
     *  Holds the last recorded value of the textFlow generation for _textFlow.  
     *  Used to determine whether to return immediately from damage event if 
     *  there have been no changes.
     */
    private var lastGeneration:uint = 0;    // 0 means not set
        
