         }
     }
     
+    /**
+     *  @private
+     */
+    private function adddedToStageHandler(event:Event):void
+    {
+        if (skin == null)
+        {
+            attachSkin();
+        }
+    }
+    
+    /**
+     *  @private
+     */
+    private function removedFromStageHandler(event:Event):void
+    {
+        detachSkin();
+    }
+    
     //--------------------------------------------------------------------------
     //
     //  Overridden methods

    //
    //--------------------------------------------------------------------------
    
    /**
     * @private 
     * 

        {
            updateErrorSkin();
            errorStringChanged = false;
        }
        
        if (skinDestructionPolicyChanged)
        {
            if (skinDestructionPolicy == "auto")
            {
                addEventListener(Event.ADDED_TO_STAGE, adddedToStageHandler);
                addEventListener(Event.REMOVED_FROM_STAGE, removedFromStageHandler);
            }
            else
            {
                removeEventListener(Event.ADDED_TO_STAGE, adddedToStageHandler);
                removeEventListener(Event.REMOVED_FROM_STAGE, removedFromStageHandler);
            }
            
            skinDestructionPolicyChanged = false;
        }
    }

