         // by a proxy image). This component may be in a form that is lower in
         // z-order than the topmost form and we cannot allow the StageText,
         // which cannot clip, to appear above the topmost form.
-        if (effectiveEnabled && stageText != null && stageText.visible)
-            stageText.assignFocus();
+        if (effectiveEnabled && stageText != null)
+        {
+            if (stageText.visible)
+                stageText.assignFocus();
+            else
+                pendingFocusedStageText = stageText;
+        }
     }
     
     /**

    private function stageText_focusInHandler(event:FocusEvent):void
    {
        focusedStageText = stageText;
        
        // Focus events are documented as bubbling. However, all events coming
        // from StageText are set to not bubble. So we need to create an

            // well if the soft keyboard is open. (If the soft keyboard is not
            // open, do not restore focus because doing so will force the soft
            // keyboard to open.)
            if (stageTextVisible)
            {
                if (stageText == focusedStageText && stage.softKeyboardRect.height > 0 ||
                    stageText == pendingFocusedStageText)
                {
                    stageText.assignFocus();
                }
            }
            
            // Do not remove the proxy bitmap until after stageText has been
