diff --git a/src/backends/lalr.c b/src/backends/lalr.c
index bcb1a028d8c62ed6427f1f8b984abfa6827e33c7..7a1c04ac2b7334683d0fb9a2453eb6f4554407c4 100644
--- a/src/backends/lalr.c
+++ b/src/backends/lalr.c
@@ -798,7 +798,7 @@ HParseResult *h_lr_parse(HAllocator* mm__, const HParser* parser, HInputStream*
       value->seq = h_carray_new_sized(arena, len);
       
       // pull values off the left stack, rewinding state accordingly
-      HParsedToken *v;
+      HParsedToken *v = NULL;
       for(size_t i=0; i<len; i++) {
         v = h_slist_pop(left);
         state = (uintptr_t)h_slist_pop(left);