diff --git a/tests/rules-data/match/unmark/cclmatch-exc.ccl b/tests/rules-data/match/unmark/cclmatch-exc.ccl
new file mode 100644
index 0000000000000000000000000000000000000000..c67e4332986284395d3f19903474a6395ccd9855
--- /dev/null
+++ b/tests/rules-data/match/unmark/cclmatch-exc.ccl
@@ -0,0 +1,10 @@
+apply(
+  match(
+    optional(equal(class[0], other)),
+    repeat(inter(class[0], adj))
+  ),
+  cond(debug(M)),
+  actions(
+    unmark(M, "B")
+  )
+)
diff --git a/tests/rules-data/match/unmark/cclmatch.xml b/tests/rules-data/match/unmark/cclmatch.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7b48741fe5a6070eb919fa18884500f8d394eb62
--- /dev/null
+++ b/tests/rules-data/match/unmark/cclmatch.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <sentence>
+   <tok>
+    <orth>Dwa</orth>
+    <lex><base>dwa</base><ctag>other</ctag></lex>
+    <ann chan="A">1</ann>
+    <ann chan="B" head="1">1</ann>
+   </tok>
+   <tok>
+    <orth>wielkie</orth>
+    <lex><base>wielki</base><ctag>adj</ctag></lex>
+    <ann chan="A">1</ann>
+    <ann chan="B" head="1">2</ann>
+   </tok>
+   <tok>
+    <orth>włochate</orth>
+    <lex><base>włochaty</base><ctag>adj</ctag></lex>
+    <ann chan="A">1</ann>
+    <ann chan="B">2</ann>
+   </tok>
+   <tok>
+    <orth>zapchlone</orth>
+    <lex><base>zapchlić</base><ctag>adj</ctag></lex>
+    <ann chan="A">1</ann>
+    <ann chan="B">2</ann>
+   </tok>
+   <tok>
+    <orth>koty</orth>
+    <lex><base>kot</base><ctag>noun</ctag></lex>
+    <ann chan="A" head="1">1</ann>
+    <ann chan="B" head="1">3</ann>
+   </tok>
+   <tok>
+    <orth>zjadły</orth>
+    <lex><base>zjeść</base><ctag>verb</ctag></lex>
+    <ann chan="A">0</ann>
+    <ann chan="B" head="1">4</ann>
+   </tok>
+   <tok>
+    <orth>pięć</orth>
+    <lex><base>pięć</base><ctag>other</ctag></lex>
+    <ann chan="A" head="1">2</ann>
+    <ann chan="B">4</ann>
+   </tok>
+   <tok>
+    <orth>tłustych</orth>
+    <lex><base>tłusty</base><ctag>adj</ctag></lex>
+    <ann chan="A">2</ann>
+    <ann chan="B">4</ann>
+   </tok>
+   <tok>
+    <orth>soczystych</orth>
+    <lex><base>soczysty</base><ctag>adj</ctag></lex>
+    <ann chan="A">2</ann>
+    <ann chan="B">4</ann>
+   </tok>
+   <tok>
+    <orth>much</orth>
+    <lex><base>mucha</base><ctag>noun</ctag></lex>
+    <ann chan="A">2</ann>
+    <ann chan="B">0</ann>
+   </tok>
+  </sentence>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/match/unmark/cclmatch1.ccl b/tests/rules-data/match/unmark/cclmatch1.ccl
new file mode 100644
index 0000000000000000000000000000000000000000..445daca59cbd42aa6e932bc6e83130d1e6cececd
--- /dev/null
+++ b/tests/rules-data/match/unmark/cclmatch1.ccl
@@ -0,0 +1,9 @@
+apply(
+  match(
+    optional(equal(class[0], other)),
+    repeat(inter(class[0], adj))
+  ),
+  actions(
+    unmark(M, "A")
+  )
+)
diff --git a/tests/rules-data/match/unmark/cclmatch1.out.xml b/tests/rules-data/match/unmark/cclmatch1.out.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d96c55d032d79905c33c7e11487331384188028e
--- /dev/null
+++ b/tests/rules-data/match/unmark/cclmatch1.out.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE cesAna SYSTEM "xcesAnaIPI.dtd">
+<cesAna xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" type="lex disamb">
+<chunkList>
+ <chunk>
+  <sentence>
+   <tok>
+    <orth>Dwa</orth>
+    <lex><base>dwa</base><ctag>other</ctag></lex>
+    <ann chan="A">0</ann>
+    <ann chan="B" head="1">1</ann>
+   </tok>
+   <tok>
+    <orth>wielkie</orth>
+    <lex><base>wielki</base><ctag>adj</ctag></lex>
+    <ann chan="A">0</ann>
+    <ann chan="B" head="1">2</ann>
+   </tok>
+   <tok>
+    <orth>włochate</orth>
+    <lex><base>włochaty</base><ctag>adj</ctag></lex>
+    <ann chan="A">0</ann>
+    <ann chan="B">2</ann>
+   </tok>
+   <tok>
+    <orth>zapchlone</orth>
+    <lex><base>zapchlić</base><ctag>adj</ctag></lex>
+    <ann chan="A">0</ann>
+    <ann chan="B">2</ann>
+   </tok>
+   <tok>
+    <orth>koty</orth>
+    <lex><base>kot</base><ctag>noun</ctag></lex>
+    <ann chan="A">0</ann>
+    <ann chan="B" head="1">3</ann>
+   </tok>
+   <tok>
+    <orth>zjadły</orth>
+    <lex><base>zjeść</base><ctag>verb</ctag></lex>
+    <ann chan="A">0</ann>
+    <ann chan="B" head="1">4</ann>
+   </tok>
+   <tok>
+    <orth>pięć</orth>
+    <lex><base>pięć</base><ctag>other</ctag></lex>
+    <ann chan="A">0</ann>
+    <ann chan="B">4</ann>
+   </tok>
+   <tok>
+    <orth>tłustych</orth>
+    <lex><base>tłusty</base><ctag>adj</ctag></lex>
+    <ann chan="A">0</ann>
+    <ann chan="B">4</ann>
+   </tok>
+   <tok>
+    <orth>soczystych</orth>
+    <lex><base>soczysty</base><ctag>adj</ctag></lex>
+    <ann chan="A">0</ann>
+    <ann chan="B">4</ann>
+   </tok>
+   <tok>
+    <orth>much</orth>
+    <lex><base>mucha</base><ctag>noun</ctag></lex>
+    <ann chan="A">0</ann>
+    <ann chan="B">0</ann>
+   </tok>
+  </sentence>
+ </chunk>
+</chunkList>
+</cesAna>
diff --git a/tests/rules-data/match/unmark/simple.is-the-tagset b/tests/rules-data/match/unmark/simple.is-the-tagset
new file mode 100644
index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc
--- /dev/null
+++ b/tests/rules-data/match/unmark/simple.is-the-tagset
@@ -0,0 +1 @@
+