             
             defaultTextFormat = textFormat;
             setTextFormat(textFormat);
+			
+			// If our text is empty we need to force the style changes in order for
+			// textHeight to be valid. Setting the width is sufficient, and should
+			// have minimal overhead since we don't have any text.
+			if (text == "")
+			{
+				// Set the width to the fontSize + padding, which is big enough to hold one
+				// character. 
+				width = textFormat.size + TEXT_WIDTH_PADDING;
+			}
+			
             invalidateStyleFlag = false;
         }
     }

    public function set editable(value:Boolean):void
    {
        type = value ? TextFieldType.INPUT : TextFieldType.DYNAMIC;
    }
    
    //----------------------------------

            textFormat.indent = getStyleFunction("textIndent");
            textFormat.leading = getStyleFunction("leading");
            textFormat.letterSpacing = getStyleFunction("letterSpacing");
			var kerning:* = getStyleFunction("kerning");
			if (kerning == "auto" || kerning == "on")
				kerning = true;
			else if (kerning == "default" || kerning == "off")
				kerning = false;
			textFormat.kerning = kerning;
            
			antiAliasType = getStyleFunction("fontAntiAliasType");
			gridFitType = getStyleFunction("fontGridFitType");
			sharpness = getStyleFunction("fontSharpness");
			thickness = getStyleFunction("fontThickness");
            
            // ignore padding in the text...most components deal with it themselves
            //textFormat.leftMargin = getStyleFunction("paddingLeft");
