diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index ae10dc4c8e11d0a7a8dfc7dc46d5480279130835..e12c6918828f63a09964e0d79b60e06dba1763a4 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -1403,6 +1403,20 @@ rule
 	boost::shared_ptr<Function<Bool> > condition;
 	boost::shared_ptr<std::vector<boost::shared_ptr<Action> > > actions;
 }
+	: "rule" LPAREN name: STRING COMMA 
+				(condition = bool_operator [tagset, vars] COMMA)?
+				actions = action_sequence [tagset, vars] 
+		RPAREN {
+			if (condition) {
+				rle.reset(
+					new Rule(token_ref_to_std_string(name), vars, actions, condition));
+			}
+			else {
+				rle.reset(
+					new Rule(token_ref_to_std_string(name), vars, actions));
+			}
+		}
+/*
 	: "rule" LPAREN name: STRING COMMA
 	(
 		(bool_operator[tagset, vars]) =>
@@ -1423,6 +1437,7 @@ rule
 		)
 	)
 	RPAREN
+*/
 ;
 
 // Rule sequence