I tested the patch manually by injecting a fault using gdb: list items are correctly restored on failure.