diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index 9bb435f7965b9e84772c38b9a90a034e0a67c5c8..1be2ccb0944463184881c13457e76ccd7c025200 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));
 	}
 ;