         // Check if the module factory has changed.
         var bold:Boolean = fontWeight == "bold";
         var italic:Boolean = fontStyle == "italic";
-        var embeddedFont:EmbeddedFont =
-            getEmbeddedFont(fontName, bold, italic);
-        var fontContext:IFlexModuleFactory =
+        var fontContext:IFlexModuleFactory = (noEmbeddedFonts || !embeddedFontRegistry) ? 
+			null : 
             embeddedFontRegistry.getAssociatedModuleFactory(
-                embeddedFont, flexModuleFactory)
+                fontName, bold, italic, this, flexModuleFactory)
         return fontContext != oldEmbeddedFontContext;
     }
 

    /**
     * @private
     * 
     * Get the embedded font for a set of font attributes.
     */ 
    mx_internal function getEmbeddedFont(fontName:String, bold:Boolean, italic:Boolean):EmbeddedFont
    {
        // Check if we can reuse a cached value.
        if (cachedEmbeddedFont)
        {
            if (cachedEmbeddedFont.fontName == fontName &&
                cachedEmbeddedFont.fontStyle == EmbeddedFontRegistry.getFontStyle(bold, italic))
            {
                return cachedEmbeddedFont;
            }   
        }
        
        cachedEmbeddedFont = new EmbeddedFont(fontName, bold, italic);      
        
        return cachedEmbeddedFont;
    }
    
    /**
     * @private
     * 
     * Save the current font context to member fields.
     */
    private function saveFontContext(flexModuleFactory:IFlexModuleFactory):void

        var fontStyle:String = getStyle("fontStyle");
        var bold:Boolean = fontWeight == "bold";
        var italic:Boolean = fontStyle == "italic";
        oldEmbeddedFontContext = (noEmbeddedFonts || !embeddedFontRegistry) ? 
			null : 
            embeddedFontRegistry.getAssociatedModuleFactory(
                fontName, bold, italic, this, flexModuleFactory);             
    }
    
    /**
