diff --git a/compiler/rt/call.lisp b/compiler/rt/call.lisp
index 75ccdf3571551aeac91349dbd51e47d83a43f17f..85e9d843991856e170bffd8cf1a1f631e0391eef 100644
--- a/compiler/rt/call.lisp
+++ b/compiler/rt/call.lisp
@@ -744,10 +744,6 @@ default-value-5
 	       `((inst li nargs-pass (fixnum nargs))))
  
 
-	 ,@(unless (eq return :tail)
-	     `((inst compute-lra-from-code
-		     return-pc-pass code-tn lra-label)))
-
 	 ,@(if named
 	       `((move name-pass name)
 		 (loadw lip name-pass vm:symbol-raw-function-addr-slot
@@ -766,7 +762,9 @@ default-value-5
 		   (inst cal nsp-tn cur-nfp
 			 (component-non-descriptor-stack-usage)))
 		 (inst b lip))
-	       `((move old-fp-pass cfp-tn)
+	       `((inst compute-lra-from-code
+		       return-pc-pass code-tn lra-label)
+		 (move old-fp-pass cfp-tn)
 		 (when cur-nfp
 		   (store-stack-tn cur-nfp nfp-save))
 		 ,(if variable