diff --git a/ldb/backtrace.c b/ldb/backtrace.c
index 8ba2859371634df963648a0ed415795cbd310d3b..1f0b3a1faa1e0504cd517874664da31fb30e9916 100644
--- a/ldb/backtrace.c
+++ b/ldb/backtrace.c
@@ -1,4 +1,4 @@
-/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/backtrace.c,v 1.6 1990/07/02 05:22:23 wlott Exp $
+/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/backtrace.c,v 1.7 1990/10/22 12:38:28 wlott Exp $
  *
  * Simple backtrace facility.  More or less from Rob's lisp version.
  */
@@ -92,13 +92,13 @@ struct sigcontext *csp;
     info->interrupted = 1;
     if (LowtagOf(csp->sc_regs[CODE]) == type_FunctionPointer) {
         /* We tried to call a function, but crapped out before $CODE could be fixed up.  Probably an undefined function. */
-        info->frame = (struct call_frame *)csp->sc_regs[OLDCONT];
+        info->frame = (struct call_frame *)csp->sc_regs[OCFP];
         info->lra = (lispobj)csp->sc_regs[LRA];
         info->code = code_pointer(info->lra);
         pc = (unsigned long)PTR(info->lra);
     }
     else {
-        info->frame = (struct call_frame *)csp->sc_regs[CONT];
+        info->frame = (struct call_frame *)csp->sc_regs[CFP];
         info->code = code_pointer(csp->sc_regs[CODE]);
         info->lra = NIL;
         pc = csp->sc_pc;
@@ -136,7 +136,7 @@ struct call_info *info;
         free = SymbolValue(FREE_INTERRUPT_CONTEXT_INDEX)>>2;
         while (free-- > 0) {
             csp = lisp_interrupt_contexts[free];
-            if ((struct call_frame *)(csp->sc_regs[CONT]) == info->frame) {
+            if ((struct call_frame *)(csp->sc_regs[CFP]) == info->frame) {
                 info_from_sigcontext(info, csp);
                 break;
             }
diff --git a/ldb/gc.c b/ldb/gc.c
index 2a696185c71f95ee9c3525e5fe493e9bb557e804..c43fc793c095bd3c70c677f40fdc66e8ab19e6f7 100644
--- a/ldb/gc.c
+++ b/ldb/gc.c
@@ -1,7 +1,7 @@
 /*
  * Stop and Copy GC based on Cheney's algorithm.
  *
- * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/gc.c,v 1.16 1990/10/22 12:28:20 wlott Exp $
+ * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/gc.c,v 1.17 1990/10/22 12:38:46 wlott Exp $
  * 
  * Written by Christopher Hoover.
  */
@@ -372,7 +372,7 @@ scavenge_interrupt_contexts()
 
 static int boxed_registers[] = {
 	A0, A1, A2, A3, A4, A5, CNAME, LEXENV,
-	ARGS, OLDCONT, LRA, L0, L1, L2, CODE
+	NFP, OCFP, LRA, L0, L1, L2, CODE
 };
 
 scavenge_interrupt_context(context)
diff --git a/ldb/interrupt.c b/ldb/interrupt.c
index fb733a7bfa6c738c2e5753099ed17db11a7f8b2d..f53db48558639bbc26d93132f19d1a66e7fe7e66 100644
--- a/ldb/interrupt.c
+++ b/ldb/interrupt.c
@@ -1,4 +1,4 @@
-/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/interrupt.c,v 1.10 1990/10/13 04:50:01 wlott Exp $ */
+/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/interrupt.c,v 1.11 1990/10/22 12:38:51 wlott Exp $ */
 
 /* Interrupt handing magic. */
 
@@ -36,22 +36,22 @@ static void fake_foreign_function_call(context)
     
     /* Build a fake stack frame */
     current_control_frame_pointer = (lispobj *) context->sc_regs[CSP];
-    if ((lispobj *)context->sc_regs[CONT]==current_control_frame_pointer) {
+    if ((lispobj *)context->sc_regs[CFP]==current_control_frame_pointer) {
         /* There is a small window during call where the callee's frame */
         /* isn't built yet. */
         if (LowtagOf(context->sc_regs[CODE]) == type_FunctionPointer) {
             /* We have called, but not built the new frame, so
                build it for them. */
-            current_control_frame_pointer[0] = context->sc_regs[OLDCONT];
+            current_control_frame_pointer[0] = context->sc_regs[OCFP];
             current_control_frame_pointer[1] = context->sc_regs[LRA];
             current_control_frame_pointer += 8;
             /* Build our frame on top of it. */
-            oldcont = (lispobj)context->sc_regs[CONT];
+            oldcont = (lispobj)context->sc_regs[CFP];
         }
         else {
             /* We haven't yet called, build our frame as if the
                partial frame wasn't there. */
-            oldcont = (lispobj)context->sc_regs[OLDCONT];
+            oldcont = (lispobj)context->sc_regs[OCFP];
         }
     }
     /* ### We can't tell if we are still in the caller if it had to
@@ -59,7 +59,7 @@ static void fake_foreign_function_call(context)
     /* ### Can anything strange happen during return? */
     else
         /* Normal case. */
-        oldcont = (lispobj)context->sc_regs[CONT];
+        oldcont = (lispobj)context->sc_regs[CFP];
     
     current_control_stack_pointer = current_control_frame_pointer + 8;
     current_control_frame_pointer[0] = oldcont;
@@ -268,9 +268,14 @@ struct sigcontext *context;
 
     if (dest < 32) {
         set_global_pointer(saved_global_pointer);
+        current_dynamic_space_free_pointer =
+            (lispobj *) context->sc_regs[ALLOC];
 
         context->sc_regs[dest] = alloc_number(result);
 
+	context->sc_regs[ALLOC] =
+	    (unsigned long) current_dynamic_space_free_pointer;
+
         skip_instruction(context);
 
     }