diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index 16964126d372ab07c8e73ef099b2a60a4bbf1edc..781ed05631b96548af6c33b79f5f078897a86bab 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -273,7 +273,7 @@ position_value
 	boost::shared_ptr<Wccl::Position> pos_lit;
 }
 	: pos_lit = position_literal {
-			new Wccl::Constant<Wccl::Position>(*pos_lit);
+		val.reset(new Wccl::Constant<Wccl::Position>(*pos_lit));
 	}
 ;