diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index c6958c7d7ddb83c66f44e0a022d9d0952211f628..f342038bb7c8fec032db8cc17222478275fa8e08 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -282,7 +282,6 @@ parse_match_rule
 {
 	Lexicons empty_lex;
 	ParsingScope scope(tagset, empty_lex);
-	scope.variables().get_put<Match>("_M");
 }
 	: ret_match = match_rule_operator[scope] 
 ;
@@ -2325,6 +2324,7 @@ match_rule_operator
 	returns [boost::shared_ptr<MatchRule> ret_op]
 {
 	boost::shared_ptr<ApplyOperator> apply;
+	scope.variables().get_put<Match>("_M");
 }
 	: apply = match_apply_operator [scope] {
 		ret_op = boost::make_shared<MatchRule>(scope.variables(), apply);