             displayObject.scrollRect = null;
             mx_internal::hasScrollRect = false;
         }
+        
+        // Listen for "damage" events in case the textFlow is 
+        // modified programatically.
+        textFlow.addEventListener(DamageEvent.DAMAGE, textFlow_damageHandler);        
     }
 
     /**


        return textFlowComposer.isOverset;
    }
}

}

        if (!mx_internal::styleChainInitialized)
            return;

        // If both width and height are specified, then measure isn't called
        // and measuredWidth/Height will remain 0.  In this case the compose
        // will always be done here.  Otherwise measure will compose and set 
        // measuredWidth/Height/isOverset.  If the unscaledWidth/Height is the
        // same as measuredWidth/Height there is no need to redo the compose.        
        if (unscaledWidth != measuredWidth || unscaledHeight != measuredHeight)
            isOverset = compose(unscaledWidth, unscaledHeight);
            
        // Use scrollRect to clip overset lines.
        // But don't read or write scrollRect if you can avoid it,
        // because this causes Player 10.0 to allocate memory.
        if (isOverset)
        {
            displayObject.scrollRect =
                new Rectangle(0, 0, unscaledWidth, unscaledHeight);
