diff --git a/gdb-port/parser.py b/gdb-port/parser.py
index 71544570e9713a8f5808f8d4d97f2306a1a33e03..0a4ef878706c149290d2ef4097bf0977ce67e122 100644
--- a/gdb-port/parser.py
+++ b/gdb-port/parser.py
@@ -294,10 +294,13 @@ class ParserStack:
 				assert event != current_event
 				#print("commit_at_pop: alloc:", alloc) # DEBUG
 				#print("commit_at_pop: adding to parser", event[2].name, hex(event[2].address))
-				event[2].add_mem_use(int(self.arena), alloc)
+				#event[2].add_mem_use(int(self.arena), alloc)
 				pop_allocs[event[2].address] = pop_allocs.get(event[2].address, 0) + alloc
 
 		#print("commit_at_pop: pop_allocs:", pop_allocs) # DEBUG
+		self.unclaimed_mem_use += pop_allocs.pop(0,0) # Account for allocs and remove with no parser, so it doesn't cause problems in the loop below
+		for parser_addr, alloc in pop_allocs.items():
+			top_level_parse.parser_by_address(parser_addr).add_mem_use(int(self.arena), alloc)
 		self.committed = len(self.stack_events)-1
 		return pop_allocs