 	{
 		super.composeTextLines(width, height);
 		
-		// Don't want this handler firing when we're re-composing the text lines.
-		if (factory is TextFlowTextLineFactory && _textFlow != null)
-		{
-			_textFlow.removeEventListener(DamageEvent.DAMAGE,
-										  textFlow_damageHandler);
-		}
-		
-		
+		// Ignore damage events while we're re-composing the text lines.
+        ignoreDamageEvent = true;
+
 		// Set the composition bounds to be used by createTextLines().
 		// If the width or height is NaN, it will be computed by this method
 		// by the time it returns.

    	textFlowChanged = false;
    	contentChanged = false;
    	
		// The other two are now invalid and must be recalculated when needed.
		_textFlow = null;
    	_content = null;
    	

     */
    private function textFlow_damageHandler(event:DamageEvent):void
    {
        // If there are no changes to the generation, don't recompose.  
        // The TextFlowFactory createTextLines dispatches damage events every 
        // time the textFlow is composed, even if there are no changes.
        if (ignoreDamageEvent || _textFlow.generation == lastGeneration)
            return;
        
        // Update the last know generation for _textFlow.
        lastGeneration = _textFlow.generation;

        // Invalidate _text and _content.
        _text = null;
