diff --git a/compiler/rt/call.lisp b/compiler/rt/call.lisp
index 329e61df3a8f5eccf282baa3bb316ea53f4013c3..14a20abba1510727e623788d488dd642976f8f44 100644
--- a/compiler/rt/call.lisp
+++ b/compiler/rt/call.lisp
@@ -482,10 +482,10 @@ default-value-5
 	  (cur-nfp (current-nfp-tn vop)))
       (when cur-nfp
 	(store-stack-tn cur-nfp nfp-save))
-      (maybe-load-stack-tn cfp-tn fp)
       (let ((callee-nfp (callee-nfp-tn callee)))
 	(when callee-nfp
 	  (maybe-load-stack-tn callee-nfp nfp)))
+      (maybe-load-stack-tn cfp-tn fp)
       (inst compute-lra-from-code
 	    (callee-return-pc-tn callee) code-tn label)
       (inst b target)
@@ -515,10 +515,10 @@ default-value-5
 	  (cur-nfp (current-nfp-tn vop)))
       (when cur-nfp
 	(store-stack-tn cur-nfp nfp-save))
-      (maybe-load-stack-tn cfp-tn fp)
       (let ((callee-nfp (callee-nfp-tn callee)))
 	(when callee-nfp
 	  (maybe-load-stack-tn callee-nfp nfp)))
+      (maybe-load-stack-tn cfp-tn fp)
       (inst compute-lra-from-code
 	    (callee-return-pc-tn callee) code-tn label)
       (inst b target)
@@ -551,10 +551,10 @@ default-value-5
 	  (cur-nfp (current-nfp-tn vop)))
       (when cur-nfp
 	(store-stack-tn cur-nfp nfp-save))
-      (maybe-load-stack-tn cfp-tn fp)
       (let ((callee-nfp (callee-nfp-tn callee)))
 	(when callee-nfp
 	  (maybe-load-stack-tn callee-nfp nfp)))
+      (maybe-load-stack-tn cfp-tn fp)
       (inst compute-lra-from-code
 	    (callee-return-pc-tn callee) code-tn label)
       (inst b target)