         private var _req_id : String;
 
         public function JSURLStream(){
-            _hola_managed = HSettings.enabled;
+            _hola_managed = HSettings.enabled && ExternalInterface.available;
             addEventListener(Event.OPEN, onOpen);
+            super();
+            if (!_hola_managed || js_api_inited)
+                return;
+            // Connect calls to JS.
+            ZErr.log('JSURLStream init api');
             ExternalInterface.marshallExceptions = true;
-            super();
-            // Connect calls to JS.
-            if (ExternalInterface.available && !js_api_inited){
-                ZErr.log('JSURLStream init api');
-                js_api_inited = true;
-                ExternalInterface.addCallback('hola_onFragmentData',
-                    hola_onFragmentData);
-            }
+            ExternalInterface.addCallback('hola_onFragmentData',
+                hola_onFragmentData);
+            js_api_inited = true;
         }
 
         protected function _trigger(cb:String, data:Object) : void {
-            if (!ExternalInterface.available) {
+            if (!_hola_managed)
+            {
                 // XXX arik: need ZErr.throw
                 ZErr.log('invalid trigger');
                 throw new Error('invalid trigger');

            var msg : Object = e.data;
            if (!_req_id || _req_id!=msg.id || msg.cmd!="b64.decode")
                return;
            var data : ByteArray = WorkerUtils.recv();
            on_decoded_data(data);
        }

        private function on_decoded_data(data : ByteArray) : void {


        override public function load(request : URLRequest) : void {
            // XXX arik: cleanup previous if hola mode changed
            _hola_managed = HSettings.enabled && ExternalInterface.available;
            req_count++;
            _req_id = 'req'+req_count;
            if (!_hola_managed)
