diff --git a/gdb-port/top-level-parse.py b/gdb-port/top-level-parse.py
index 10fbe0dfe018c4c419dd10622f5395141f101ac0..a6c3f6ff1292decddfd5f8d58776529476b54e76 100644
--- a/gdb-port/top-level-parse.py
+++ b/gdb-port/top-level-parse.py
@@ -402,6 +402,9 @@ class TopLevelParse:
 			token_length = tokenmap_entry['end'] - tokenmap_entry['start']
 			start_col = max(tokenmap_entry['start'] - start, 0)
 			end_col = min(tokenmap_entry['end'] - start, w)
+			if end_col < start: #TODO: better control flow here, deletion branch could be merged
+				del self.tokens_from_previous_chunk[index]
+				continue
 			charbuf_dynamic.append([' '] * w)
 			charbuf_dynamic[current_row][start_col:end_col] = ['X'] * min(token_length, end_col-start_col) # TODO: charbuf_dynamic[-1]
 			hparseresult_addr = tokenmap_entry['hparseresult']