diff --git a/src/machine/loader.rs b/src/machine/loader.rs index 2b49b50c..4906ce53 100644 --- a/src/machine/loader.rs +++ b/src/machine/loader.rs @@ -1384,10 +1384,16 @@ impl MachineState { stackful_post_order_iter::(&mut self.heap, &mut self.stack, 0); while let Some(addr) = iter.next() { - let addr = unmark_cell_bits!(heap_bound_store( - iter.base_iter.heap, - heap_bound_deref(iter.base_iter.heap, addr), - )); + let addr = unmark_cell_bits!(addr); + + let addr = if addr.is_var() { + unmark_cell_bits!(heap_bound_store( + iter.base_iter.heap, + heap_bound_deref(iter.base_iter.heap, addr) + )) + } else { + addr + }; read_heap_cell!(addr, (HeapCellValueTag::Lis) => {