 				}
 				catch (e:Error) { }
 				weaveTrace('requested ' + label);
-				URLRequestUtils.delayed.push({"label": label, "resume": resume});
+				URLRequestUtils.delayed.push({"label": label, "resume": resume});
 			}
-			
-			// keep track of pending requests
-			WeaveAPI.ProgressIndicator.addTask(this, relevantContext as ILinkableObject);
-			addResponder(new AsyncResponder(removeTask, removeTask));
 			
 			// set up event listeners
 			addEventListener(Event.COMPLETE, handleGetResult);
 			addEventListener(IOErrorEvent.IO_ERROR, handleGetError);
 			addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleSecurityError);
 			addEventListener(ProgressEvent.PROGRESS, handleProgressUpdate);
-			
-			super.load(request);
-		}
-	}
-	
+			
+			if (URLRequestUtils.debug)
+				trace(debugId(this), 'request', request.url);
+			super.load(request);
+		}
+	}
+	
 	internal var label:String;
-	private var _asyncToken:AsyncToken = new AsyncToken();
+	private var _asyncToken:AsyncToken = new AsyncToken();
 	private var _isClosed:Boolean = false;
 	private var _urlRequest:URLRequest = null;
 	

		if (text == "Error #2032")
			text += ": Stream Error. URL: " + urlRequest.url;
		errorEvent.text = text;
	}
	
	/**
	 * This function gets called when a URLLoader generated by getURL() dispatches an IOErrorEvent.
	 * @param event The ErrorEvent from a URLLoader.
	 */
	private function handleGetError(event:Event):void
	{
		if (URLRequestUtils.delayResults && _resumeFunc == null)
		{
			_resumeFunc = handleGetError;

		}
	}

	private function handleProgressUpdate(event:Event):void
	{
		for each (var responder:Object in _asyncToken.responders)
			if (responder is CustomAsyncResponder)
				WeaveAPI.ProgressIndicator.updateTask(responder, bytesLoaded / bytesTotal);
	}

	private var _resumeFunc:Function = null;
	private var _resumeParam:Object = null;
	/**
