 //		internalActivate(); 
 		focusSetLocally = false;
 					
-    	var request:FocusRequest = FocusRequest.marshal(event);
-		if (request.direction == FocusRequestDirection.TOP || request.direction == FocusRequestDirection.BOTTOM)
+    	var request:SWFBridgeRequest = SWFBridgeRequest.marshal(event);
+		if (request.data == FocusRequestDirection.TOP || request.data == FocusRequestDirection.BOTTOM)
 		{
 			// move focus to the top or bottom child. If there are no children then
 			// send focus back up to the parent.
 			if (focusableObjects.length == 0)
 			{
 				// trace("focusRequestMoveHandler: no focusable objects, setting focus back to parent");
-				moveFocusToParent(request.direction == FocusRequestDirection.TOP ? false : true);
-				if (focusChanged)
-					event.preventDefault();
+				moveFocusToParent(request.data == FocusRequestDirection.TOP ? false : true);
+				request.data = focusChanged;
 				return;
 			}
 
-			if (request.direction == FocusRequestDirection.TOP)
+			if (request.data == FocusRequestDirection.TOP)
 			{
 				setFocusToTop();	
 			}

    private function moveFocusToParent(shiftKey:Boolean):Boolean
    {
    	// trace("pass focus from " + this.form.systemManager.loaderInfo.url + " to parent ");
		var request:FocusRequest = new FocusRequest(FocusRequest.MOVE_FOCUS_REQUEST,
													false, true, 
													shiftKey ? FocusRequestDirection.BACKWARD :
													  		   FocusRequestDirection.FORWARD); 
		var sandboxBridge:IEventDispatcher = _form.systemManager.swfBridgeGroup.parentBridge;
		
		// if focus was changed, the handler will call event.preventDefault(), 
		// which will return "false".
		focusChanged = !sandboxBridge.dispatchEvent(request);
		
		return focusChanged;
    }

	       		
	       	// need to create the event locally so the "is this a message from ourselves"
	       	// check works. Otherwise the message is created in the same domain. 
    		eObj = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_FOCUS_MANAGER_ACTIVATE);
			
	       	// send message to top-level that we are active
	       	if (parentBridge && parentBridge != lastBridge)
