             var fontSize:* = getStyle("fontSize");
             
             if (fontSize != undefined)
-                stageText.fontSize = fontSize;
+                stageText.fontSize = fontSize * densityScale;
             else
-                stageText.fontSize = defaultStyles["fontSize"];
+                stageText.fontSize = defaultStyles["fontSize"] * densityScale;
 
             var color:* = getStyle("color");
             

        
        stageText.stage = stage;
        
        if (deferredViewPortUpdate)
            updateViewPort();
    }
    
    /**
     *  Clean up and dispose of our StageText.
     *  TODO: This fails on iOS because of bug 2906305. 
     */
    private function removedFromStageHandler(event:Event):void
    {
        if (stageText == null)
            return;
        
        stageText.stage = null;
        
        stageText.removeEventListener(Event.CHANGE, stageText_changeHandler);

                var globalPoint:Point = parent.localToGlobal(localViewPort.topLeft);
                var globalRect:Rectangle = new Rectangle(globalPoint.x, globalPoint.y);
    
                if (_visible && calcAncestorsVisible()) 
                {
                    if (textImage)
                    {
                        textImage.x = 0;
                        textImage.y = 0;
                    }
                    else
                    {
                        // Transform the bottom-right corner of the local rect
                        // instead of setting width/height to account for any
                        // transformations applied to ancestor objects.
                        globalRect.bottomRight = parent.localToGlobal(localViewPort.bottomRight);
                        globalRect.width = Math.floor(globalRect.width);
                        globalRect.height = Math.floor(globalRect.height);
                    }
                }
                
                stageText.viewPort = globalRect;
