diff --git a/gdb-port/top-level-parse.py b/gdb-port/top-level-parse.py
index 8b3dd9efe7cc23ee13bf6153adc943acc1191e04..73d78a5fb11ba619a30f7d385653121eed182c9f 100644
--- a/gdb-port/top-level-parse.py
+++ b/gdb-port/top-level-parse.py
@@ -271,8 +271,12 @@ class TopLevelParse:
 		pending_allocs_by_arena = {}
 
 		for ps in self.parser_stacks:
-			allocs = ps.get_pending_allocations()
-			#pending_allocs_by_arena[ps.arena] = { ps.arena : ps.get_pending_allocations() }
+			new_allocs_by_arena = ps.get_pending_allocations()
+			new_allocs = new_allocs_by_arena.get(ps.arena_int, {})
+			pending_allocs = self.pending_allocs.get(ps.arena_int, {})
+			for addr, alloc in new_allocs:
+				pending_allocs[addr] = pending_allocs.get(addr, 0) + alloc
+			pending_allocs_by_arena[ps.arena_int] = pending_allocs
 
 		# TODO: allocations are grouped by arena, then parser address. we get the arena address from the parser stack, which may be shared between parser stacks
 		# Therefore, it can't just be blindly assigned to a key with the arena's address. the two dicts need to be merged, with the values of duplicate entries added together