             // go get our errorTip manager up the visual heirarchy
             findErrorTipManager();
             
-            _target.addEventListener(FIND_ERROR_TIP_MANAGER, handleRequestErrorTipManager,false,0,true);
-            _target.addEventListener(FlexEvent.UPDATE_COMPLETE, handleTargetUpdateComplete,false,0,true);
-            _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);
-            _target.addEventListener(Event.ADDED_TO_STAGE, handleTargetAddedToStage,false,0,true);
+            _target.addEventListener(FIND_ERROR_TIP_MANAGER, handleRequestErrorTipManager,false, 0, true);
+            _target.addEventListener(FlexEvent.UPDATE_COMPLETE, handleTargetUpdateComplete,false, 0, true);
+            
+            _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);
+
+            _target.addEventListener(FlexEvent.SHOW, handleTargetAddedToStage, false, 0, true);
+            _target.addEventListener(Event.ADDED_TO_STAGE, handleTargetAddedToStage,false, 0, true);
         }
     }
     

    {
        if (_target)
        {
            _target.removeEventListener(FIND_ERROR_TIP_MANAGER, handleRequestErrorTipManager);
            _target.removeEventListener(Event.CLOSE, handleTargetRemovedFromStage);
            _target.removeEventListener(FlexEvent.HIDE, handleTargetRemovedFromStage);
            _target.removeEventListener(Event.REMOVED_FROM_STAGE, handleTargetRemovedFromStage);
            _target.removeEventListener(Event.ADDED_TO_STAGE, handleTargetAddedToStage);
            _target.removeEventListener(FlexEvent.UPDATE_COMPLETE, handleTargetUpdateComplete);
        }
        
        _target = v;

        for each (item in items)
        {
            newValid = newValid && _validationStates[item];
            if (!newValid)
                break; // bail quickly
        }
        
        isValid = newValid;
