 		{
 			completed.removeAll();
 			completed = null;
+			delegate = null;
 		}
 
 		[Test]

		{
			assertEquals('listener still in signal', 1, e.signal.numListeners);
			
			e.signal.remove(arguments.callee);
			
			assertEquals('listener removed from signal', 0, e.signal.numListeners);
		}

		[Test(async)]
		public function add_one_listener_and_dispatch_then_listener_remove_itself_using_event_signal():void
		{
			delegate = addAsync(remove_myself_from_signal, 10);
			completed.add(delegate);
			completed.dispatch(new GenericEvent());
		}
		
