      */
     private function composeOnHeightChange(unscaledHeight:Number):Boolean
     {
+        // Height increased and there is more content that can be composed.
+        if (unscaledHeight > bounds.height && isOverset)
+            return true;
+            
         if (truncation != 0 && getStyle("lineBreak") == "toFit")
         {
             // -1 is fill the bounds and the bounds changed so recompose.

        else if (unscaledHeight != bounds.height)
        {
            // Height changed.
            if ((unscaledHeight > bounds.height && 
                isOverset) ||
                composeOnHeightChange(unscaledHeight) ||
                getStyle("blockProgression") != "tb")
            {
                // More height is needed and it's possible there is more text
                // since it didn't all fit before.  Or the styles require a
                // recompose if the height changes.
                compose = true;
            }
            else if (unscaledHeight < bounds.height)

                return true;
            }
        }

        // ToDo: optimize this case.        
        if (getStyle("blockProgression") != "tb")
            return true;    
            
        return false;                
    }

    /**
     *  @private
     */
    private function composeOnWidthChange(unscaledWidth:Number):Boolean
    {
        // If toFit, then the composeWidth must equal the unscaledWidth
        // so that the text flows properly. 
        if (getStyle("lineBreak") == "toFit")
        {
            if (isNaN(_composeWidth) || _composeWidth != unscaledWidth)
                return true;
        }
        
        // ToDo: optimize this case.        
        if (getStyle("blockProgression") != "tb")
            return true;
                    
        return false;
    }

