diff --git a/compiler/ppc/c-call.lisp b/compiler/ppc/c-call.lisp
index 79026d593273b2a6ee0d9f1114f038f9bf0a8109..76dbae41e2ef776f96c8d378b953e6e2dd31df98 100644
--- a/compiler/ppc/c-call.lisp
+++ b/compiler/ppc/c-call.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/c-call.lisp,v 1.1 2001/02/11 14:22:04 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/c-call.lisp,v 1.2 2001/02/17 20:02:05 dtc Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -138,13 +138,16 @@
   (:temporary (:sc any-reg :offset cfunc-offset
 		   :from (:argument 0) :to (:result 0)) cfunc)
   (:temporary (:sc control-stack :offset nfp-save-offset) nfp-save)
+  (:temporary (:scs (non-descriptor-reg)) temp)
   (:vop-var vop)
   (:generator 0
     (let ((cur-nfp (current-nfp-tn vop)))
       (when cur-nfp
 	(store-stack-tn nfp-save cur-nfp))
+      (inst lr temp (make-fixup "call_into_c" :foreign))
+      (inst mtctr temp)
       (move cfunc function)
-      (inst bla (make-fixup "call_into_c" :foreign))
+      (inst bctrl)
       (when cur-nfp
 	(load-stack-tn cur-nfp nfp-save)))))