Currently, the t_pcb of the panicking thread is plowed by the setjmp() in panicsys that saves the registers at the time of the panic. This destroys a potentially critical piece of state – namely, the register state the last time the thread blocked. The t_pcb should be preserved and set to a new panic variable: panic_pcb.