             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;
             
-            // do we care abotu kerning, antiAliasType, gridFitType, sharpness, thickness, or leading?
+			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");

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

            
            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;
        }
    }
