diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index e12c6918828f63a09964e0d79b60e06dba1763a4..d2a70195202b9f2d3a225c1ae5a832057d57ef70 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -1446,17 +1446,16 @@ rule_sequence
 	returns [boost::shared_ptr<RuleSequence> rule_seq]
 {
 	// FIXME czy tutaj przypadkiem nie powinno byc shared_ptr?
-	std::vector<Rule> rls;
 	boost::shared_ptr<Rule> rle;
 
-	rule_seq.reset(new RuleSequence(rls));
+	rule_seq.reset(new RuleSequence());
 }
 	: rle = rule [tagset, vars] {
-		rls.push_back(*rle);
+		rule_seq->push_back(*rle);
 	}
 	(
 		COMMA rle = rule [tagset, vars] {
-			rls.push_back(*rle);
+			rule_seq->push_back(*rle);
 		}
 	)*
 ;
@@ -1519,14 +1518,14 @@ action_delete
 			pos = position_operator [tagset, vars] COMMA
 			condition = bool_operator [tagset, vars] {
 				// delete(positon, condition); 
-				action.reset(new Delete(condition));
+				action.reset(new Delete(condition, pos));
 			}
 		)
 	|
 		(
 			condition = bool_operator [tagset, vars] {
 				// delete(condition); 
-				action.reset(new Delete(condition, pos));
+				action.reset(new Delete(condition));
 			}
 		)
 	)