      */
     override protected function composeOnHeightChange():Boolean
     {
+        if (super.composeOnHeightChange())
+            return true;
+
         var topAligned:Boolean =
             textFlow.hostTextLayoutFormat.verticalAlign == "top";
 

     */
    override protected function composeOnWidthChange():Boolean
    {
        var direction:String = textFlow.hostTextLayoutFormat.direction;
        var textAlign:String = textFlow.hostTextLayoutFormat.textAlign;
        var leftAligned:Boolean =

		var bounds:Rectangle = mx_internal::bounds;
        bounds.x = 0;
        bounds.y = 0;
        bounds.width = isNaN(width) ? maxWidth : width;
        bounds.height = height;

        mx_internal::removeTextLines();
        mx_internal::textLines.length = 0;
        
        createTextLines();
                    
        // If toFit and explicit width, adjust the bounds to match.
        // This will save a recompose and/or clip in updateDisplayList() if 
        // the bounds width matches the unscaled width.
        if (getStyle("lineBreak") == "toFit" && !isNaN(width) && 
            mx_internal::bounds.width < width)
        {
            mx_internal::bounds.width = width;
        }                                                           
        
        mx_internal::addTextLines(DisplayObjectContainer(drawnDisplayObject));
        
        // Figure out if the text overruns the available space for composition.
        mx_internal::isOverset = mx_internal::isTextOverset(width, height);
        
		// Just recomposed so reset.
        mx_internal::invalidateCompose = false;
        
        // Listen for "damage" events in case the textFlow is 
        // modified programatically.
