diff --git a/dev/js/spec/sessionSpec.js b/dev/js/spec/sessionSpec.js
index 96f45cb..6c10d9a 100644
--- a/dev/js/spec/sessionSpec.js
+++ b/dev/js/spec/sessionSpec.js
@@ -55,7 +55,23 @@
       expect(document.cookie.includes("koraptest=%7B%22test3%22%3A%22works%22%7D")).toBeTruthy();
       s.clear();     
       expect(document.cookie.includes("koraptest=")).toBeTruthy();
-      expect(s.toString()).toEqual("koraptest=%7B%7D;SameSite=Lax");
-    });   
+      expect(s.toString()).toEqual("koraptest=%7B%7D;SameSite=Lax;path=/");
+    }); 
+    
+    /*
+    * The cookie path should by default be '/'. The path should be settable.
+    */
+    it('cookie path should have default and be settable', function(){
+      //cookie should be created with the default path=/
+      let c = sessionClass.create("cookwithoutp");
+      c.clear();
+      expect(c.toString().includes("path=/")).toBeTruthy();
+      //the path should be settable
+      let d =  sessionClass.create("cookwithp", "/instance/blub");
+      d.clear();
+      expect(d.toString().includes("path=/instance/blub")).toBeTruthy();
+    });
+
   })
+
 });
diff --git a/dev/js/src/session.js b/dev/js/src/session.js
index 3c9d457..fe8de4c 100644
--- a/dev/js/src/session.js
+++ b/dev/js/src/session.js
@@ -11,10 +11,12 @@
   /**
    * Create a new session.
    * Expects a name or defaults to 'korap'
+   * Expects a path or defaults to '/'
    */
-  create : function (name = 'korap') {
+  create : function (name = 'korap', path ="/") {
     const obj = Object.create(this);
     obj._name = name.toLowerCase();
+    obj._path = path;
     obj._hash = {};
     obj._parse();
     return obj;
@@ -38,7 +40,7 @@
     this._hash[key] = value;
     this._store();
   },
-
+ 
 
   /**
    * Clears the session by removing the cookie
@@ -63,7 +65,7 @@
       var date = new Date();
       date.setYear(date.getFullYear() + 1);
     */
-    return this._name + '=' + encodeURIComponent(JSON.stringify(this._hash)) + ';SameSite=Lax' + ';path=/';
+    return this._name + '=' + encodeURIComponent(JSON.stringify(this._hash)) + ';SameSite=Lax' + ';path='+this._path;
   },
 
 
