diff --git a/code/extfmts.lisp b/code/extfmts.lisp
index a5eb60b7fbdde5a5d0f36c3adb910b9e8033975b..87bd13b0fbf91b9c75ac1466022b842aef390b8e 100644
--- a/code/extfmts.lisp
+++ b/code/extfmts.lisp
@@ -5,7 +5,7 @@
 ;;; domain.
 ;;; 
 (ext:file-comment
- "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/extfmts.lisp,v 1.11 2009/08/10 16:47:41 rtoy Exp $")
+ "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/extfmts.lisp,v 1.12 2009/08/10 22:14:26 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -275,9 +275,11 @@
   (or (gethash name *external-formats*)
       (and (consp name) (find-external-format name))
       (and (let ((*package* (find-package "STREAM"))
-		 (lisp::*enable-package-locked-errors* nil))
-	     (load (format nil "ext-formats:~(~A~).lisp" name)
-		   :if-does-not-exist nil :external-format :iso8859-1))
+		 (lisp::*enable-package-locked-errors* nil)
+		 (s (open (format nil "ext-formats:~(~A~).lisp" name)
+			  :if-does-not-exist nil :external-format :iso8859-1)))
+	     (when s
+	       (null (nth-value 1 (ext:compile-from-stream s)))))
            (gethash name *external-formats*))))
 
 (defun %composed-ef-name (a b)