diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index d36ab6d72319715a36567a503801646c7e4cc2c9..e45d48eb56cd6a9b9e266194141cda7bed1728d4 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -272,8 +272,11 @@ boolean_value
 // returns boost::shared_ptr<Wccl::Position>
 position_literal
 	returns [boost::shared_ptr<Wccl::Position> val]
-	: i: UNSIGNED_INT {
-		val.reset(new Wccl::Position(Wccl::Position(token_ref_to_int(i))));
+{
+	int i = 0;
+}
+	: i = number {
+		val.reset(new Wccl::Position(Wccl::Position(i)));
 	}
 	| "begin" {
 		val.reset(new Wccl::Position(Wccl::Position(Wccl::Position::Begin)));