      */
     public function getVisibleApplicationRect(bounds:Rectangle = null):Rectangle
     {
-		var request:Request = new Request("getVisibleApplicationRect", false, true);
-		if (!dispatchEvent(request)) 
-			return Rectangle(request.value);
-            
+        if (hasEventListener("getVisibleApplicationRect"))
+        {
+		    var request:Request = new Request("getVisibleApplicationRect", false, true);
+		    if (!dispatchEvent(request)) 
+			    return Rectangle(request.value);
+        }
+        
         if (!bounds)
         {
             bounds = getBounds(DisplayObject(this));

	override public function removeEventListener(type:String, listener:Function,
												 useCapture:Boolean = false):void
	{
		if (!dispatchEvent(new EventListenerRequest(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST, false, true,
						type, listener, useCapture)))
			return;

		// These two events will dispatched to applications in sandboxes.
		if (type == FlexEvent.RENDER || type == FlexEvent.ENTER_FRAME)

import mx.core.mx_internal;
import mx.events.Request;
import mx.events.DynamicEvent;
import mx.events.FlexEvent;
import mx.events.ResizeEvent;
import mx.preloaders.Preloader;
