         // Width changed.        
         if (!compose && unscaledWidth != bounds.width)
         {
-            if (getStyle("lineBreak") == "toFit" || 
-                getStyle("blockProgression") != "tb")
+            if (composeOnWidthChange(unscaledWidth))
             {
-                // Width changed and toFit line breaks or the styles
-                // require a recompose if the width changes.
                 compose = true;
             }
-            else if (unscaledWidth < bounds.width)
+            else if (getStyle("lineBreak") == "explicit" &&
+                     unscaledWidth < bounds.width)
             {
                 // Explicit line breaks.  Don't need to recompose but need to 
                 // clip since the not all the width is needed.

                return true;
            }
        }
        
        return false;
    }


     */
    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.
