diff --git a/libwccl/ops/match/applyoperator.cpp b/libwccl/ops/match/applyoperator.cpp
index 50742593cbf4840e7990f4282c6c3adfb2814f74..cfecd52112358e6187939b69044f51b65b7fd5e4 100644
--- a/libwccl/ops/match/applyoperator.cpp
+++ b/libwccl/ops/match/applyoperator.cpp
@@ -5,13 +5,11 @@
 namespace Wccl {
 
 ApplyOperator::ApplyOperator(
-	const VariableAccessor<Position>& cur_iter_pos,
 	const VariableAccessor<Match>& matches,
 	const boost::shared_ptr<const MatchOperator>& match_op,
 	const boost::shared_ptr<const std::vector<boost::shared_ptr<MatchAction> > >& actions,
 	const boost::shared_ptr<const std::vector<boost::shared_ptr<Function<Bool> > > >& conditions)
-		: _cur_iter_pos(cur_iter_pos),
-		  _matches(matches),
+		: _matches(matches),
 		  _match_op(match_op),
 		  _actions(actions),
 		  _conditions(conditions)
@@ -22,9 +20,9 @@ ApplyOperator::ApplyOperator(
 
 void ApplyOperator::execute(const ActionExecContext &context) const
 {
-	boost::shared_ptr<Position> iter_pos = context.variables()->get_fast(_cur_iter_pos);
+	boost::shared_ptr<Position> iter_pos(new Position(0));
 	boost::shared_ptr<MatchVector> matches =
-			boost::dynamic_pointer_cast<MatchVector>(context.variables()->get_fast(_matches));
+		boost::dynamic_pointer_cast<MatchVector>(context.variables()->get_fast(_matches));
 	while(context.sentence_context().is_current_inside()) {
 		// Set initial values of $_ and $m:_M variables for this iteration and launch the match:
 		iter_pos->set_value(0);
diff --git a/libwccl/ops/match/applyoperator.h b/libwccl/ops/match/applyoperator.h
index 2feea7ced77370ed5810c8200ac74a9a5a6cf1b3..65db7e946d6cbdb2df2c4456e9e6dbef86109163 100644
--- a/libwccl/ops/match/applyoperator.h
+++ b/libwccl/ops/match/applyoperator.h
@@ -17,14 +17,12 @@ class ApplyOperator : public Expression
 public:
 	typedef LogicalPredicate::BoolFunctionPtrVector BoolFunctionPtrVector;
 	/**
-	  * @param cur_iter_pos Accessor to the "$_" variable
 	  * @param matches Accessor to the "$m:_M" variable
 	  * @param match_op "match" operator for apply
 	  * @param actions "actions" section of apply, should not be empty
 	  * @param conditions "cond" section of apply, empty by default
 	  */
 	ApplyOperator(
-			const VariableAccessor<Position>& cur_iter_pos,
 			const VariableAccessor<Match>& matches,
 			const boost::shared_ptr<const MatchOperator>& match_op,
 			const boost::shared_ptr<const std::vector<boost::shared_ptr<MatchAction> > >& actions,
@@ -60,7 +58,6 @@ protected:
 	virtual void execute(const ActionExecContext &context) const;
 
 private:
-	const VariableAccessor<Position> _cur_iter_pos;
 	const VariableAccessor<Match> _matches;
 	const boost::shared_ptr<const MatchOperator> _match_op;
 	const boost::shared_ptr<const std::vector<boost::shared_ptr<MatchAction> > > _actions;