 			return;
 		}
 
-		if (type == MouseEvent.MOUSE_MOVE || type == MouseEvent.MOUSE_UP || type == MouseEvent.MOUSE_DOWN)
+		if (type == MouseEvent.MOUSE_MOVE || type == MouseEvent.MOUSE_UP || type == MouseEvent.MOUSE_DOWN 
+				|| type == Event.ACTIVATE || type == Event.DEACTIVATE)
 		{
 			// also listen to stage if allowed
 			try

			return;
		}

		if (type == MouseEvent.MOUSE_MOVE || type == MouseEvent.MOUSE_UP || type == MouseEvent.MOUSE_DOWN)
		{
			// also listen to stage if allowed
			try

		var marshaledEvent:Event = MarshalMouseEvent.marshal(event);
		dispatchEventToSandboxes(marshaledEvent, event.target as IEventDispatcher);

		// ask the sandbox root if it was the original dispatcher of this event
		// if it was then don't dispatch to ourselves because we could have
		// got this event by listening to sandboxRoot ourselves.
		var me:MarshalEvent = new MarshalEvent(MarshalEvent.SYSTEM_MANAGER);
		me.name = "sameSandbox";
		me.value = event;
