     {
         super.updateDisplayList(unscaledWidth, unscaledHeight);
         
-        titleDisplay.commitStyles();
         titleDisplay.width = unscaledWidth;
         titleDisplay.height = unscaledHeight;
         
-        // before truncating text, we need to reset it to its original value
+        // reset text if it was truncated before.
         if (titleDisplay.isTruncated)
             titleDisplay.text = title;
+        titleDisplay.commitStyles();
+        
+        // now truncate the text
         titleDisplay.truncateToFit();
         
         titleDisplayShadow.commitStyles();

import flash.events.Event;
import flash.geom.Matrix;
import flash.text.TextFormatAlign;
import flash.text.TextLineMetrics;

import mx.core.UIComponent;
import mx.core.UITextField;

    {
        var textWidth:Number = 0;
        var textHeight:Number = 0;
        
        // reset text if it was truncated before.
        if (titleDisplay.isTruncated)
            titleDisplay.text = title;
        titleDisplay.commitStyles();
        
        if (title != "")
        {
            textWidth = titleDisplay.textWidth + TEXT_WIDTH_PADDING;
            textHeight = titleDisplay.textHeight + UITextField.TEXT_HEIGHT_PADDING;
            descent = titleDisplay.getLineMetrics(0).descent;
        }
        else
        {
            // ignore text width...we just need textHeight, but we need to use 
            // measureText("Wj") to figure this out
            var lineMetrics:TextLineMetrics = measureText("Wj");
            textHeight = measureText("Wj").height + UITextField.TEXT_HEIGHT_PADDING;
            descent = lineMetrics.descent;
        }
        
        measuredWidth = textWidth;
        measuredHeight = textHeight;
