 		this.listener = listener;
 	}
 
-	public function stageListener(event:MouseEvent):void
+	public function stageListener(event:Event):void
 	{
 		if (event.target is Stage)
 			listener(event);

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

		var me:MarshalEvent = new MarshalEvent(MarshalEvent.SYSTEM_MANAGER);
		me.name = "sameSandbox";
		me.value = event;

			return;
		}

		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
