Index: /branches/arm/compiler/ARM/arm-lapmacros.lisp
===================================================================
--- /branches/arm/compiler/ARM/arm-lapmacros.lisp	(revision 13863)
+++ /branches/arm/compiler/ARM/arm-lapmacros.lisp	(revision 13864)
@@ -69,4 +69,7 @@
   `(ldmia (:! sp) (,marker-reg vsp fn pc)))
 
+(defarmlapmacro discard-lisp-frame ()
+  `(add sp sp (:$ arm::lisp-frame.size)))
+
 
 (defarmlapmacro push1 (src stack)
Index: /branches/arm/level-0/ARM/arm-clos.lisp
===================================================================
--- /branches/arm/level-0/ARM/arm-clos.lisp	(revision 13863)
+++ /branches/arm/level-0/ARM/arm-clos.lisp	(revision 13864)
@@ -181,5 +181,5 @@
       (moveq lr (:$ (- arm::nil-value arm::fulltag-nil)))
       (ldreq lr (:@ lr (:$ (arm::%kernel-global 'arm::lexpr-return))))
-      (stmdbeq (:! vsp) (imm0 imm1 fn lr))
+      (stmdbeq (:! sp) (imm0 imm1 fn lr))
       (moveq lr arg_x)
       (movne lr (:$ (- arm::nil-value arm::fulltag-nil)))
@@ -244,5 +244,5 @@
       (moveq lr (:$ (- arm::nil-value arm::fulltag-nil)))
       (ldreq lr (:@ lr (:$ (arm::%kernel-global 'arm::lexpr-return))))
-      (stmdbeq (:! vsp) (imm0 imm1 fn lr))
+      (stmdbeq (:! sp) (imm0 imm1 fn lr))
       (moveq lr arg_x)
       (movne lr (:$ (- arm::nil-value arm::fulltag-nil)))
Index: /branches/arm/level-0/ARM/arm-def.lisp
===================================================================
--- /branches/arm/level-0/ARM/arm-def.lisp	(revision 13863)
+++ /branches/arm/level-0/ARM/arm-def.lisp	(revision 13864)
@@ -1067,5 +1067,6 @@
   (build-lisp-frame)
   (bl .SPspread-lexprz)
-  (restore-lisp-frame)
+  (ldr lr (:@ sp (:$ arm::lisp-frame.savelr)))
+  (discard-lisp-frame)
   (ldr pc (:@ nfn (:$ arm::function.entrypoint))))
 
