         {
             // For some composite components, the focused object may not
             // be "this". If so, we don't want to draw the focus.
-            if (focusManager.getFocus() != this)
+            if (focusManager.getFocus() != this && !mx_internal::drawFocusAnyway)
                 return;
                 
-            if (!focusObj)
+            if (!mx_internal::focusObj)
             {
                 var focusSkinClass:Class = getStyle("focusSkin");
                 
                 if (focusSkinClass)
-                    focusObj = new focusSkinClass();
+                    mx_internal::focusObj = new focusSkinClass();
                     
-                super.addChildAt(focusObj, 0);
+                super.addChildAt(mx_internal::focusObj, 0);
             }
+			if (mx_internal::focusObj && "focusObject" in mx_internal::focusObj)
+				mx_internal::focusObj["focusObject"] = this;
         }
         else
         {
-            if (focusObj)
-                super.removeChild(focusObj);
-            focusObj = null;
+            if (mx_internal::focusObj)
+                super.removeChild(mx_internal::focusObj);
+            mx_internal::focusObj = null;
         }
     }
     

        if (skin)
            skin.setActualSize(unscaledWidth, unscaledHeight);

        if (focusObj && focusObj is IInvalidating)
            IInvalidating(focusObj).invalidateDisplayList();
    }

    /**

import mx.events.PropertyChangeEvent;
import mx.managers.ISystemManager;
import mx.modules.ModuleManager;

//--------------------------------------
//  Styles
