         }
         else
         {
-            hostFormat = null;
+            hostFormatChanged = true;
+            
+            if (styleProp.indexOf("font") == 0 || styleProp == "cffHinting")
+            {
+                // Regenerate font swfContext and metrics as well.
+                ascent = NaN;
+                descent = NaN;
+            }
         }
 
         // Need to create new format(s).

    {
        super.styleChanged(styleProp);

        if (styleProp == null || styleProp == "styleName" ||
            styleProp == "fontFamily" || styleProp == "fontSize")
        {
            ascent = NaN;
            descent = NaN;
        }

        // If null or "styleName" is passed it indicates that
        // multiple styles may have changed.  Otherwise it is a single style
        // so mark whether it is the selectionFormat that changed or the
        // hostFormat that changed.
        if (styleProp == null || styleProp == "styleName")
        {
            hostFormat = null;
            selectionFormatsChanged = true;
        }
        else if (styleProp == "focusedTextSelectionColor" || 
                 styleProp == "unfocusedTextSelectionColor" ||

    override protected function commitProperties():void
    {
        super.commitProperties();
        
        updateStylesIfChanged();

        // EditingMode needs to be current before attempting to set a
        // selection below.
        if (enabledChanged || selectableChanged || editableChanged)
