diff --git a/lisp/interrupt.c b/lisp/interrupt.c
index 4b228395e06c49e94fcb15f01c9b6514abb430d9..82342250864208e9c7acb8506c52db9ad712f341 100644
--- a/lisp/interrupt.c
+++ b/lisp/interrupt.c
@@ -1,4 +1,4 @@
-/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/interrupt.c,v 1.44 2006/11/07 11:24:12 cshapiro Exp $ */
+/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/interrupt.c,v 1.45 2006/11/08 22:12:52 rtoy Exp $ */
 
 /* Interrupt handling magic. */
 
@@ -693,6 +693,12 @@ interrupt_handle_space_overflow(lispobj error, os_context_t * context)
     SC_REG(context, reg_CFP) = (long) current_control_frame_pointer;
     /* This is sparc specific */
     SC_REG(context, reg_CODE) = ((long) PTR(error)) + type_FunctionPointer;
+    /*
+     * Restore important Lisp regs.  Are there others we need to
+     * restore?
+     */
+    SC_REG(context, reg_ALLOC) = current_dynamic_space_free_pointer;
+    SC_REG(context, reg_NIL) = NIL;
 #else
 #error interrupt_handle_space_overflow not implemented for this system
 #endif