This document describes the design and implementation of a backward-in-time debugger called Unstuck for the Squeak programming language. Unstuck records the execution history of a program so developers can view and change the program state at any past point. It uses bytecode instrumentation to trace method executions and object state, and provides a graphical user interface to search the trace and view object values over time. The key challenges addressed are efficiently tracing program execution without excessive slowdowns and reconstructing past state.