diff --git a/Changes b/Changes
index 66f0b14..85ff5e7 100644
--- a/Changes
+++ b/Changes
@@ -9,6 +9,7 @@
         - Fix test suite for glimpse-rearrangement (diewald)
         - Mark "notinindex"-fields (diewald)
         - Fix test suite for "allow-same-origin" sandbox rule (diewald)
+        - Escape commas and asterisks in query-by-match query creator (kupietz, hebasta)
 
 0.64 2026-02-14
         - Improve 'Plugins' mounting (diewald)
diff --git a/dev/js/spec/queryCreatorSpec.js b/dev/js/spec/queryCreatorSpec.js
index 16b8c36..a7e9860 100644
--- a/dev/js/spec/queryCreatorSpec.js
+++ b/dev/js/spec/queryCreatorSpec.js
@@ -95,13 +95,21 @@
     "          <td class=\"mark\">NN</td>" +
     "        </tr>" +
     "        <tr tabindex=\"0\">" +
-    "          <th>tt</th>" +
+    "          <th>gender</th>" +
     "          <th>l</th>" +
     "          <td>Lese|Lesen</td>" +
     "          <td>a b</td>" +
     "          <td></td>" +
     "          <td class=\"mark\">NN</td>" +
     "        </tr>" +
+    "        <tr tabindex=\"0\">" +
+    "          <th>tt</th>" +
+    "          <th>l</th>" +
+    "          <td>Lehrer*in</td>" +
+    "          <td>gender:fem,masc,nonbin</td>" +
+    "          <td></td>" +
+    "          <td class=\"mark\">NN</td>" +
+    "        </tr>" +
     "      </tbody>" +
     "    </table>";
   var info = document.createElement('div');
@@ -651,7 +659,7 @@
       expect(cell.classList.contains("chosen")).toBe(false);
       cell.click();
       expect(cell.classList.contains("chosen")).toBeTruthy();
-      expect(qc.toString()).toEqual("[tt/l='Lese|Lesen']");
+      expect(qc.toString()).toEqual("[gender/l='Lese|Lesen']");
       cell.click()
       expect(cell.classList.contains("chosen")).toBe(false);
       expect(qc.toString()).toEqual("");
@@ -660,7 +668,7 @@
       expect(cell.classList.contains("chosen")).toBe(false);
       cell.click();
       expect(cell.classList.contains("chosen")).toBeTruthy();
-      expect(qc.toString()).toEqual("[tt/l='a b']");
+      expect(qc.toString()).toEqual("[gender/l='a b']");
       cell.click()
       expect(cell.classList.contains("chosen")).toBe(false);
       expect(qc.toString()).toEqual("");
@@ -674,6 +682,24 @@
       cell.click()
       expect(cell.classList.contains("chosen")).toBe(false);
       expect(qc.toString()).toEqual("");
+
+      cell = matchTable.querySelector("tbody > tr:nth-child(4) > td:nth-child(3)");
+      expect(cell.classList.contains("chosen")).toBe(false);
+      cell.click();
+      expect(cell.classList.contains("chosen")).toBeTruthy();
+      expect(qc.toString()).toEqual("[tt/l='Lehrer*in']");
+      cell.click()
+      expect(cell.classList.contains("chosen")).toBe(false);
+      expect(qc.toString()).toEqual("");
+
+      cell = matchTable.querySelector("tbody > tr:nth-child(4) > td:nth-child(4)");
+      expect(cell.classList.contains("chosen")).toBe(false);
+      cell.click();
+      expect(cell.classList.contains("chosen")).toBeTruthy();
+      expect(qc.toString()).toEqual("[tt/l='gender:fem,masc,nonbin']");
+      cell.click()
+      expect(cell.classList.contains("chosen")).toBe(false);
+      expect(qc.toString()).toEqual("");
     });
 
     it('should respect marked elements', function () {
diff --git a/dev/js/src/match/querycreator.js b/dev/js/src/match/querycreator.js
index 12614d3..8e59143 100644
--- a/dev/js/src/match/querycreator.js
+++ b/dev/js/src/match/querycreator.js
@@ -20,7 +20,7 @@
   const loc = KorAP.Locale;
   loc.NEW_QUERY = loc.NEW_QUERY || 'New Query';
 
-  const esc = RegExp("^(?:[^ \:\.\'\\\\\|\&]+:)?[^ \:\.\'\\\\\|\&]+$");
+  const esc = RegExp("^(?:[^ \:\.\'\\\\\|\&,\*]+:)?[^ \:\.\'\\\\\|\&,\*]+$");
   
   function _getKeyValue (keyValue) {
     if (keyValue.match(esc) === null) {
