diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index 246dd17d218b223189e0562329960ea9dcc904d3..a6c9940f62ae39f9bee9d159ca849761526dc0cb 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -2035,7 +2035,7 @@ tag_rule_sequence
 		rule_seq->push_back(*rle);
 	}
 	(
-		COMMA rle = tag_rule [scope] {
+		SEMI rle = tag_rule [scope] {
 			rule_seq->push_back(*rle);
 		}
 	)*
diff --git a/tests/rules-data/tag/manyrules/prep-agr.ccl b/tests/rules-data/tag/manyrules/prep-agr.ccl
index 7dbd6f33a2890e97eb9a97e3584530a39d60d4a7..ef1624b99ee27a0f2de21524fbafde5b7e0b7bb4 100644
--- a/tests/rules-data/tag/manyrules/prep-agr.ccl
+++ b/tests/rules-data/tag/manyrules/prep-agr.ccl
@@ -7,7 +7,7 @@ tag_rules(
 		select(
 			in(cas[0], cas[-1])
 		)
-	),
+	);
 	rule("prep-subst-case", // [prep] with-case
 		and(
 			equal(class[0], prep),
@@ -16,12 +16,12 @@ tag_rules(
 		select(
 			in(cas[0], cas[1])
 		)
-	),
+	);
 	rule("agr-right", // [here] next
 		select(
 			agr(0,1,{nmb,gnd,cas})
 		)
-	),
+	);
 	rule("agr-left", // prev [here]
 		select(
 			agr(-1,0,{nmb,gnd,cas})
diff --git a/tests/rules-data/tag/select/sel_agr.ccl b/tests/rules-data/tag/select/sel_agr.ccl
index 99174ac3517b472197a392d9430d4ef0565dab26..40bc5870230fa6c74a0dbb12b60395c4f0be67d4 100644
--- a/tests/rules-data/tag/select/sel_agr.ccl
+++ b/tests/rules-data/tag/select/sel_agr.ccl
@@ -8,7 +8,7 @@ tag_rules(
 		select(
 			agrpp(0,2,{nmb,gnd,cas})
 		)
-	),
+	);
 	rule("sel-agr2",
 		and(
 			equal(class[0], subst),