diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index 2ba60ade5f1a9853eba193dde8f7266828faebd4..0fb8f619a7b5439728c0c44b263618313b5270e4 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -282,7 +282,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));
 	}
 ;