diff --git a/pdf.c b/pdf.c
index 7dd3e7afbdb39cda3ab3c834acf9c5d5aa6c3e1c..774c0b8b365b598d5c1a33d170ba790f888aadf9 100644
--- a/pdf.c
+++ b/pdf.c
@@ -84,7 +84,7 @@ act_pnat(const HParseResult *p, void *u)
 HParsedToken *
 act_intg(const HParseResult *p, void *u)
 {
-	uint64_t x = 0;
+	int64_t x = 0;
 	HCountedArray *seq = H_FIELD_SEQ(1);
 
 	for (size_t i = 0; i < seq->used; i++)
@@ -95,7 +95,7 @@ act_intg(const HParseResult *p, void *u)
 	    sgn->bytes.token[0] == '-')
 		x = -x;
 	
-	return H_MAKE_UINT(x);
+	return H_MAKE_SINT(x);
 }
 
 HParsedToken *