             if (_target)
             {
                 _target.addEventListener(Event.CLOSE, handleTargetRemovedFromStage,false,0,true);
+                _target.addEventListener(FlexEvent.HIDE, handleTargetRemovedFromStage,false,0,true);
+                _target.addEventListener(Event.REMOVED_FROM_STAGE, handleTargetRemovedFromStage,false,0,true);
             }
         }
         

            else if (event is ValidationResultEvent)
            {
                validateNow(true);
            }
        }
        

        {
            v.addEventListener(ValidationResultEvent.VALID, handleItemValidationEvent,false,0,true);
            v.addEventListener(ValidationResultEvent.INVALID, handleItemValidationEvent,false,0,true);
            v.addEventListener("validChanged", handleItemValidationEvent,false,0,true);
        }
        
        private function getKeys(map:Dictionary) : Array
