 			if (actualType)
 			{
 				addEventListenerToSandboxes(type, sandboxMouseListener, useCapture, priority, useWeakReference);
-				super.addEventListener(type, listener, useCapture, priority, useWeakReference);
+				
+				// Set useCapture to false because we will never see an event 
+				// marshalled in the capture phase.
+                super.addEventListener(type, listener, false, priority, useWeakReference);
 				return;
 			}
 		}

	/**
	 * request the parent to remove an event listener.
	 */	
	private function removeEventListenerFromSandboxes(type:String, listener:Function, useCapture:Boolean = false):void 
	{
		// trace(">>removeEventListenerToSandboxes", this, type);
		var request:EventListenerRequest = new EventListenerRequest(EventListenerRequest.REMOVE,

				// test to see if parent is a Bootstrap
				if (!parent.dispatchEvent(new Event("mx.managers.SystemManager.isBootstrapRoot", false, true)))
					return lastParent;
					
			    // Test if the childAllowsParent so we know there is mutual trust between
			    // the sandbox root and this sm.
			    // The parentAllowsChild is taken care of by the player because it returns null
			    // for the parent if we do not have access.
				if (parent is Loader)
				{
				    var loader:Loader = Loader(parent);
				    var loaderInfo:LoaderInfo = loader.contentLoaderInfo;
				    if (!loaderInfo.childAllowsParent)
				        return loaderInfo.content;
				}
				lastParent = parent; 
				parent = parent.parent;				
			}
