diff --git a/code/foreign.lisp b/code/foreign.lisp
index b1f6ff89e1eb53263460b77fba4c65825c9898c8..215e77051d97acc2ad15d422d81b8805542868aa 100644
--- a/code/foreign.lisp
+++ b/code/foreign.lisp
@@ -7,16 +7,16 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/foreign.lisp,v 1.10 1992/03/02 02:27:23 wlott Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/foreign.lisp,v 1.11 1992/03/04 18:15:41 ram Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
 (in-package "SYSTEM")
 
-(in-package "EXT")
+(in-package "ALIEN")
 (export '(load-foreign))
 (in-package "SYSTEM")
-(import 'ext:load-foreign)
+(import 'alien:load-foreign)
 
 (defvar *previous-linked-object-file* nil)
 (defvar *foreign-segment-free-pointer* foreign-segment-start)
@@ -164,30 +164,26 @@
 	    (setf (gethash symbol symbol-table) address)))))
     (setf lisp::*foreign-symbols* symbol-table)))
 
-(defun load-foreign (files &optional
+(defun load-foreign (files &key
 			   (libraries '("-lc"))
-			   (linker "library:load-foreign.csh")
 			   (base-file "path:lisp")
 			   (env ext:*environment-list*))
-  "Load-foreign loads a list of C object files into a running Lisp.  The
-  files argument should be a single file or a list of files.  The files
-  may be specified as namestrings or as pathnames.  The libraries
-  argument should be a list of library files as would be specified to
-  ld.  They will be searched in the order given.  The default is just
-  \"-lc\", i.e., the C library.  The linker argument is used to specifier
-  the Unix linker to use to link the object files (the default is
-  /usr/cs/bin/ld).  The base-file argument is used to specify a file to
-  use as the starting place for defined symbols.  The default is the C
-  start up code for Lisp.  The env argument is the Unix environment
-  variable definitions for the invocation of the linker.  The default is
-  the environment passed to Lisp."
+  "Load-foreign loads a list of C object files into a running Lisp.  The files
+  argument should be a single file or a list of files.  The files may be
+  specified as namestrings or as pathnames.  The libraries argument should be a
+  list of library files as would be specified to ld.  They will be searched in
+  the order given.  The default is just \"-lc\", i.e., the C library.  The
+  base-file argument is used to specify a file to use as the starting place for
+  defined symbols.  The default is the C start up code for Lisp.  The env
+  argument is the Unix environment variable definitions for the invocation of
+  the linker.  The default is the environment passed to Lisp."
   (let ((output-file (pick-temporary-file-name))
 	(symbol-table-file (pick-temporary-file-name))
 	(error-output (make-string-output-stream)))
 
-    (format t ";;; Running ~A...~%" linker)
+    (format t ";;; Running library:load-foreign.csh...~%")
     (force-output)
-    (let ((proc (ext:run-program linker
+    (let ((proc (ext:run-program "library:load-foreign.csh"
 				 (list* (or *previous-linked-object-file*
 					    (namestring (truename base-file)))
 					(format nil "~X"
@@ -203,11 +199,11 @@
 				 :output error-output
 				 :error :output)))
       (unless proc
-	(error "Could not run ~S" linker))
+	(error "Could not run library:load-foreign.csh"))
       (unless (zerop (ext:process-exit-code proc))
 	(system:serve-all-events 0)
-	(error "~S failed:~%~A"
-	       linker (get-output-stream-string error-output)))
+	(error "library:load-foreign.csh failed:~%~A"
+	       (get-output-stream-string error-output)))
       (load-object-file output-file)
       (parse-symbol-table symbol-table-file)
       (unix:unix-unlink symbol-table-file)