         }
 
         override public function load(request : URLRequest) : void {
-            if (_hola_managed || _self_load)
+            if (_hola_managed)
             {
                 if (reqs[_req_id])
                 {
-                    delete reqs[_req_id];
+                    _delete();
                     _trigger('abortFragment', {req_id: _req_id});
                 }
                 WorkerUtils.removeEventListener(HEvent.WORKER_MESSAGE, onmsg);

                resourceLoadingSuccess();
        }

        private function self_load(o : Object) : void {
            _self_load = true;
            _hola_managed = false;
            _events = o.events||{};
            addEventListener(IOErrorEvent.IO_ERROR, onerror);
            addEventListener(SecurityErrorEvent.SECURITY_ERROR, onerror);
            addEventListener(ProgressEvent.PROGRESS, onprogress);
            addEventListener(HTTPStatusEvent.HTTP_STATUS, onstatus);
            addEventListener(Event.COMPLETE, oncomplete);
            var req : URLRequest = new URLRequest(o.url);
            req.method = o.method=="POST" ? URLRequestMethod.POST :
                URLRequestMethod.GET;
            // this doesn't seem to work. simply ignored
            var headers : Object = o.headers||{};
            for (var k : String in headers)
                req.requestHeaders.push(new URLRequestHeader(k, headers[k]));
            super.load(req);
        }

        private function on_fragment_data(o : Object) : void {
            _curr_data = o;
            if (o.self_load)
                return self_load(o);
            if (o.error)
                return resourceLoadingError();
            decode(o.data);

        private var _curr_data : Object;
        private var _hola_managed : Boolean = false;
        private var _req_id : String;

        public function JSURLStream(){
            _hola_managed = HSettings.enabled && ZExternalInterface.avail();
