diff --git a/dev/js/src/init.js b/dev/js/src/init.js
index 1796c6a..7f6dce6 100644
--- a/dev/js/src/init.js
+++ b/dev/js/src/init.js
@@ -82,10 +82,13 @@
     
     // Set base URL
     KorAP.URL = d.body.getAttribute('data-korap-url') || "";
-  
+
+    
+    
     // Create suffix if KorAP is run in a subfolder
     KorAP.session = sessionClass.create(
-      KorAP.URL.length > 0 ? 'kalamarJS-' + KorAP.URL.slugify() : 'kalamarJS'
+      (KorAP.URL.length > 0 ? 'kalamarJS-' + KorAP.URL.slugify() : 'kalamarJS'),
+      KorAP.URL
     );
 
     // Get koralQuery response
diff --git a/dev/js/src/tutorial.js b/dev/js/src/tutorial.js
index ae42bad..9fe132d 100644
--- a/dev/js/src/tutorial.js
+++ b/dev/js/src/tutorial.js
@@ -197,23 +197,22 @@
       let page = obj;
 
       if (typeof page != 'string') {
-	      const l = this._iframe !== null ? window.frames[0].location : window.location;
+	const l = this._iframe !== null ? this._iframe.contentWindow.location : window.location;
 
-	      page = l.pathname + l.search;
+        page = l.pathname + l.search;
 
-	      for (let i = 1; i < 5; i++) {
-	        if ((obj.nodeName === 'SECTION' || obj.nodeName === 'PRE') && obj.hasAttribute('id')) {
-	          page += '#' + obj.getAttribute('id');
-	          break;
-	        }
-	        else {
-	          obj = obj.parentNode;
+	for (let i = 1; i < 5; i++) {
+	  if ((obj.nodeName === 'SECTION' || obj.nodeName === 'PRE') && obj.hasAttribute('id')) {
+	    page += '#' + obj.getAttribute('id');
+	    break;
+	  }
+	  else {
+	    obj = obj.parentNode;
             if (obj === null)
               break;
-	        };
-	      };
+	  };
+	};
       };
-
       this._session.set('tutpage', page);
     },
 
