         measuredWidth = layoutMeasuredWidth;
         
         // now we need to measure textDisplay's height.  Unfortunately, this is tricky and 
-        // is dependent on textDisplay's width
-        
-        
-        measuredHeight = Math.max(layoutMeasuredHeight, textDisplay.measuredTextSize.y + paddingTop + paddingBottom);
+        // is dependent on textDisplay's width.  Let's use the heuristic that our width 
+        // is the same as our last width.
+        // We don't use layoutMeasuredWidth, because that value is just a constant and doesn't
+        // take into account the fact that the TextArea could have an explicitWidth or could 
+        // be constrained by some value.  However, we still default oldTextDisplayWidth to 
+        // be layoutMeasuredWidth the first time through.
+        var textDisplayEstimatedWidth:Number = oldUnscaledWidth - paddingLeft - paddingRight;
+        
+        // now we need to measure textDisplay's height.  Unfortunately, this is tricky and 
+        // is dependent on textDisplay's width.  
+        // Use the old textDisplay width as an estimte for the new one.  
+        // If we are wrong, we'll find out in updateDisplayList()
+        setElementSize(textDisplay, textDisplayEstimatedWidth, NaN);
+        
+        var textDisplayHeight:Number = getElementPreferredHeight(textDisplay);
+        
+        measuredHeight = Math.max(layoutMeasuredHeight, textDisplayHeight + paddingTop + paddingBottom);
     }
     
     /**

        
        var paddingTop:Number = getStyle("paddingTop");
        var paddingBottom:Number = getStyle("paddingBottom");
        
        // TextDisplay always defaults to 440 pixels wide, and tall enough to 
        // show all text.
        // 
        // You can set an explicit width and the height will adjust accordingly. The opposite
        // is not true: setting an explicit height will not adjust the width accordingly.

                break;
            }
        }
        
        // default the text display width to be layoutMeasuredWidth
        oldUnscaledWidth = layoutMeasuredWidth;
    }
    
    //--------------------------------------------------------------------------
