     override protected function updateDisplayList(unscaledWidth:Number,
                                                   unscaledHeight:Number):void 
     {
-        // If we need to remeasure don't bother updating the display.
-        if (invalidateSizeFlag)
+        //trace("updateDisplayList", unscaledWidth, unscaledHeight, "autoSize", autoSize);
+        
+        // Check if the auto-size text is constrained in some way and needs
+        // to be remeasured.  If one of the dimension changes, the text may
+        // compose differently and have a different size which the layout 
+        // manager needs to know.
+        if (autoSize && remeasureText(unscaledWidth, unscaledHeight))
             return;
-            
-        //trace("updateDisplayList", unscaledWidth, unscaledHeight, "autoSize", autoSize);
 
         super.updateDisplayList(unscaledWidth, unscaledHeight);
 
         // If we're autoSizing we're telling the layout manager one set of
         // values and TLF another set of values so there is room for the text
         // to grow.
-        ignoreDamageEvent = true;
-
-        _textContainerManager.compositionWidth = unscaledWidth;
-        _textContainerManager.compositionHeight = autoSize ? NaN : 
-                                                  unscaledHeight;
-
-        ignoreDamageEvent = false;
+        if  (!autoSize)
+        {
+            _textContainerManager.compositionWidth = unscaledWidth;
+            _textContainerManager.compositionHeight = unscaledHeight;
+        }
         
         if (debug)
             trace("updateContainer()");

                }
            }
            
            // Make sure we weren't previously scrolled.
            if (autoSize)
             {
                ignoreDamageEvent = true;
                
                _textContainerManager.horizontalScrollPosition = 0;
                _textContainerManager.verticalScrollPosition = 0;
                
                ignoreDamageEvent = false;
             }               
             
             invalidateDisplayList();     

            
            verticalScrollPositionChanged = false;            
        }
    }

    /**
