      */
     private function calculateFontMetrics():void
     {
+        if (!fontMetricsInvalid)
+            return;
+            
         // If the CSS styles for this component specify an embedded font,
         // embeddedFontContext will be set to the module factory that
         // should create TextLines (since they must be created in the

    {
        super.measure();
        
        // Recalculate the ascent, and descent
        // if these might have changed.
        if (fontMetricsInvalid)
        {
            calculateFontMetrics();    
            fontMetricsInvalid = false;
        }
    
        if (_autoSize)
        {

     */
    override public function get baselinePosition():Number
    {
        // Update ascent, if fontMetrics changed.
        calculateFontMetrics();    

        return getStyle("paddingTop") + ascent;
    }
