 
 class SomeComponent extends UIComponent
 {
-    private var _timer:Timer = new Timer(1, 1);
+    private var _removeFromStageOnValidateProperties:Boolean = false;
+
+    override public function validateProperties():void
+    {
+        super.validateProperties();
+        if(_removeFromStageOnValidateProperties)
+            removeFromStage();
+    }
 
     override public function validateSize(recursive:Boolean = false):void
     {
         super.validateSize(recursive);
-        removeFromStage();
+    }
+
+    override public function validateDisplayList():void
+    {
+        super.validateDisplayList();
     }
 
     private function removeFromStage():void

        {
            //given
            UIComponentGlobals.mx_internal::layoutManager.usePhasedInstantiation = true;
            _objectWhichIsRemovedOnSizeValidation.addEventListener(FlexEvent.CREATION_COMPLETE, onCreationComplete);

            //when
            _objectWhichIsRemovedOnSizeValidation.validateNow();
            _objectWhichIsRemovedOnSizeValidation.pretendUserAskedForComponentRemoval();

            //then wait 2 frames
            noEnterFramesRemaining = 2;
            UIImpersonator.testDisplay.addEventListener(Event.ENTER_FRAME, onEnterFrame);
            Async.handleEvent(this, _finishNotifier, Event.COMPLETE, then_assert, 300);
        }

        private function then_assert(event:Event, passThroughData:Object):void
        {
            //then
            assertNull("The object was actually not removed from stage. Huh?", _objectWhichIsRemovedOnSizeValidation.parent);
            assertFalse("Yep, this is the bug. Why call initialized=true on an object that's not on stage?", _creationCompleteCalled);
        }

        private static function onEnterFrame(event:Event):void
        {

        private static const _finishNotifier:EventDispatcher = new EventDispatcher();

        private var _objectWhichIsRemovedOnSizeValidation:SomeComponent;
        private var _creationCompleteCalls:int;

        [Before]
        public function setUp():void
        {
            _creationCompleteCalls = 0;
            _objectWhichIsRemovedOnSizeValidation = new SomeComponent();
            _objectWhichIsRemovedOnSizeValidation.addEventListener(FlexEvent.CREATION_COMPLETE, onCreationComplete);
            UIImpersonator.addElement(_objectWhichIsRemovedOnSizeValidation);
        }

        [After]
