diff --git a/RCSconfig b/RCSconfig
deleted file mode 100644
index f8424d49e64f956b95ec723d118b7aa64d14928e..0000000000000000000000000000000000000000
--- a/RCSconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-new_compiler
-cmu
-<>
diff --git a/code/load.lisp b/code/load.lisp
index 387d5500c7a51ff0cd3803c283ea35944e7f9b67..8671483ae5a7de2a1527eb1f401d54e3a9cef369 100644
--- a/code/load.lisp
+++ b/code/load.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/load.lisp,v 1.81 2001/10/16 19:19:54 toy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/load.lisp,v 1.82 2002/03/31 14:48:35 pw Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -74,6 +74,12 @@
 (defvar *fasl-file*)
 (declaim (type lisp-stream *fasl-file*))
 
+;; If non-nil, don't check that FASL files loaded into core have the
+;; same version number as the current backend. This is used when
+;; rebuilding CMUCL after having incremented the FASL-FILE-VERSION
+;; parameter.
+(defvar *skip-fasl-file-version-check* nil)
+
 
 ;;; LOAD-FRESH-LINE -- internal.
 ;;;
@@ -406,10 +412,12 @@
 		(funcall (the function (svref fop-functions byte))))))))))
 
 
-;;; Check-Header returns t if t succesfully read a header from the file,
+;;; Check-Header returns t if it succesfully read a header from the file,
 ;;; or () if EOF was hit before anything was read.  An error is signaled
 ;;; if garbage is encountered.
-
+;;;
+;;; We check that the stream starts with the magic bytes "FASL FILE".
+;;; The end of the header is marked by the octet #xFF. 
 (defun check-header (file)
   (let ((byte (read-byte file NIL '*eof*)))
     (cond ((eq byte '*eof*) ())
@@ -1103,30 +1111,35 @@
 
 ;;;; Loading functions:
 
+;;; must be compatible with the function OPEN-FASL-FILE in compiler/dump.lisp
 (define-fop (fop-code-format 57 :nope)
   (let ((implementation (read-arg 1))
-	(version (read-arg 1)))
+	(version (read-arg 4)))
     (flet ((check-version (imp vers)
 	     (when (eql imp implementation)
 	       (unless (eql version vers)
-		 (error "~A was compiled for fasl-file version ~A, ~
-			 but this is version ~A"
-			*fasl-file* version vers))
+		 (cerror "Load ~A anyway"
+                         "~A was compiled for fasl-file version ~X, ~
+			 but this is version ~X"
+                         *fasl-file* version vers))
 	       t))
 	   (imp-name (imp)
-	     (or (nth imp '#.c:fasl-file-implementations)
+             (if (< -1 imp (length '#.c:fasl-file-implementations))
+                 (nth imp '#.c:fasl-file-implementations)
 		 "unknown machine")))
-    (unless (or (check-version #.(c:backend-fasl-file-implementation
+    (unless (or *skip-fasl-file-version-check*
+                (check-version #.(c:backend-fasl-file-implementation
 				  c:*backend*)
 			       #.(c:backend-fasl-file-version
 				  c:*backend*))
 		(check-version #.(c:backend-byte-fasl-file-implementation
 				  c:*backend*)
 			       c:byte-fasl-file-version))
-      (error "~A was compiled for a ~A, but this is a ~A"
-	     *Fasl-file*
-	     (imp-name implementation)
-	     (imp-name #.(c:backend-fasl-file-implementation c:*backend*)))))))
+      (cerror "Load ~A anyway"
+              "~A was compiled for a ~A, but this is a ~A"
+              *Fasl-file*
+              (imp-name implementation)
+              (imp-name #.(c:backend-fasl-file-implementation c:*backend*)))))))
 
 
 ;;; Load-Code loads a code object.  NItems objects are popped off the stack for
diff --git a/compiler/alpha/parms.lisp b/compiler/alpha/parms.lisp
index 99da9804424ae1d8f8a2834c0395804a989a2697..24c3d71d14a4f37e8827458ff997a3c7c261f9dd 100644
--- a/compiler/alpha/parms.lisp
+++ b/compiler/alpha/parms.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/alpha/parms.lisp,v 1.6 2000/10/16 17:30:06 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/alpha/parms.lisp,v 1.7 2002/03/31 14:48:37 pw Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -30,7 +30,7 @@
 (setf (backend-fasl-file-type *target-backend*) "axpf")
 (setf (backend-fasl-file-implementation *target-backend*)
       alpha-fasl-file-implementation)
-(setf (backend-fasl-file-version *target-backend*) 2)
+(setf (backend-fasl-file-version *target-backend*) #x18d)
 (setf (backend-register-save-penalty *target-backend*) 3)
 (setf (backend-byte-order *target-backend*) :little-endian)
 (setf (backend-page-size *target-backend*) 8192)
diff --git a/compiler/byte-comp.lisp b/compiler/byte-comp.lisp
index 6240b62151823ec2d0385439eeda84849828aebc..0ec0b13f8ebe7e02f444b2001e66fc1db9abf1c7 100644
--- a/compiler/byte-comp.lisp
+++ b/compiler/byte-comp.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/byte-comp.lisp,v 1.29 2000/09/26 16:39:30 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/byte-comp.lisp,v 1.30 2002/03/31 14:48:36 pw Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -32,7 +32,7 @@
 
 ;;;; Fasl file format:
 
-(defconstant byte-fasl-file-version 0)
+(defconstant byte-fasl-file-version #x18d)
 
 (defun backend-byte-fasl-file-type (backend)
   (ecase (backend-byte-order backend)
diff --git a/compiler/dump.lisp b/compiler/dump.lisp
index 46b8d4748da450494285df539632a1122471c4d0..3e39fe55a4c28a7535669f5b5b84aedfcb02ca1c 100644
--- a/compiler/dump.lisp
+++ b/compiler/dump.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/dump.lisp,v 1.73 2001/03/04 20:12:15 pw Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/dump.lisp,v 1.74 2002/03/31 14:48:36 pw Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -396,7 +396,7 @@
       ;; Specify code format.
       (dump-fop 'lisp::fop-code-format res)
       (dump-byte f-imp res)
-      (dump-byte f-vers res))
+      (dump-unsigned-32 f-vers res))
     res))
 
 
diff --git a/compiler/generic/new-genesis.lisp b/compiler/generic/new-genesis.lisp
index 5424aa5311c44858e526b49812966a3499c8747f..7ea3909ac22278280e568fccc568c92cde03d3d7 100644
--- a/compiler/generic/new-genesis.lisp
+++ b/compiler/generic/new-genesis.lisp
@@ -4,7 +4,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/new-genesis.lisp,v 1.44 2002/03/13 08:02:00 moore Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/new-genesis.lisp,v 1.45 2002/03/31 14:48:38 pw Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -1581,21 +1581,27 @@
 (define-cold-fop (fop-sanctify-for-execution)
   (pop-stack))
 
+;;; must be compatible with the function OPEN-FASL-FILE in compiler/dump.lisp
 (define-cold-fop (fop-code-format :nope)
   (let ((implementation (read-arg 1))
-	(version (read-arg 1)))
+	(version (read-arg 4)))
     (unless (= implementation (c:backend-fasl-file-implementation c:*backend*))
-      (error
+      (cerror
+       "Load ~A anyway"
        "~A was compiled for a ~A, but we are trying to build a core for a ~A"
        *Fasl-file*
-       (or (elt c:fasl-file-implementations implementation)
+       (if (< -1 implementation (length c:fasl-file-implementations))
+           (elt c:fasl-file-implementations implementation)
 	   "unknown machine")
-       (or (elt c:fasl-file-implementations
+       (if (< -1 implementation (length c:fasl-file-implementations))
+           (elt c:fasl-file-implementations
 		(c:backend-fasl-file-implementation c:*backend*))
 	   "unknown machine")))
-    (unless (= version (c:backend-fasl-file-version c:*backend*))
-      (error
-       "~A was compiled for a fasl-file version ~A, but we need version ~A"
+    (unless (or *skip-fasl-file-version-check*
+                (eql version (c:backend-fasl-file-version c:*backend*)))
+      (cerror
+       "Load ~A anyway"
+       "~A was compiled for a fasl-file version ~X, but we need version ~X"
        *Fasl-file* version (c:backend-fasl-file-version c:*backend*)))))
 
 (not-cold-fop fop-make-byte-compiled-function)
@@ -2077,7 +2083,7 @@
       (#.c:sgi-fasl-file-implementation
        (ecase kind
 	 (:jump
-	  (assert (zerop (ash value -28)))
+	  ;; emarsden2002-03-05 (assert (zerop (ash value -28)))
 	  (let ((inst (maybe-byte-swap (sap-ref-32 sap 0))))
 	    (setf (ldb (byte 26 0) inst) (ash value -2))
 	    (setf (sap-ref-32 sap 0) (maybe-byte-swap inst))))
diff --git a/compiler/hppa/parms.lisp b/compiler/hppa/parms.lisp
index 2a5e86ac642bcecca42c638c1a6a37b24958c13a..6b57c582711eb9e4e9b7d9c8186fa8b05ae5bc49 100644
--- a/compiler/hppa/parms.lisp
+++ b/compiler/hppa/parms.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/hppa/parms.lisp,v 1.7 2000/10/16 17:30:06 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/hppa/parms.lisp,v 1.8 2002/03/31 14:48:39 pw Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -29,7 +29,7 @@
 (setf (backend-fasl-file-type *target-backend*) "hpf")
 (setf (backend-fasl-file-implementation *target-backend*)
       hppa-fasl-file-implementation)
-(setf (backend-fasl-file-version *target-backend*) 2)
+(setf (backend-fasl-file-version *target-backend*) #x18d)
 (setf (backend-register-save-penalty *target-backend*) 3)
 (setf (backend-byte-order *target-backend*) :big-endian)
 (setf (backend-page-size *target-backend*) 4096)
diff --git a/compiler/mips/parms.lisp b/compiler/mips/parms.lisp
index efcae0d4d03d71e46c00e273bed2455af5a33f36..b040bc6a846c00aff134cb3264d2fd8d1c075489 100644
--- a/compiler/mips/parms.lisp
+++ b/compiler/mips/parms.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/parms.lisp,v 1.113 2000/10/16 17:30:07 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/parms.lisp,v 1.114 2002/03/31 14:48:39 pw Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -37,7 +37,7 @@
 (setf (backend-fasl-file-type *target-backend*) #+pmax "pmaxf" #+sgi "sgif")
 (setf (backend-fasl-file-implementation *target-backend*)
       #+pmax pmax-fasl-file-implementation #+sgi sgi-fasl-file-implementation)
-(setf (backend-fasl-file-version *target-backend*) #-gengc 6 #+gengc 7)
+(setf (backend-fasl-file-version *target-backend*) #x18d)
 (setf (backend-register-save-penalty *target-backend*) 3)
 (setf (backend-byte-order *target-backend*) #+pmax :little-endian
       #+sgi :big-endian)
diff --git a/compiler/ppc/parms.lisp b/compiler/ppc/parms.lisp
index 33fdf26e67147305e76131372563389f2f8a5697..af5ce16949c098ca15c5ff2f644b31fe43d252c8 100644
--- a/compiler/ppc/parms.lisp
+++ b/compiler/ppc/parms.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/parms.lisp,v 1.2 2001/02/11 16:43:19 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/parms.lisp,v 1.3 2002/03/31 14:48:40 pw Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -32,7 +32,7 @@
 (setf (backend-fasl-file-type *target-backend*) "ppcf")
 (setf (backend-fasl-file-implementation *target-backend*)
       ppc-fasl-file-implementation)
-(setf (backend-fasl-file-version *target-backend*) 5)
+(setf (backend-fasl-file-version *target-backend*) #x18d)
 (setf (backend-register-save-penalty *target-backend*) 3)
 (setf (backend-byte-order *target-backend*) :big-endian)
 (setf (backend-page-size *target-backend*) 4096)
diff --git a/compiler/sparc/parms.lisp b/compiler/sparc/parms.lisp
index adec6f2769031609e89ca503f51dec84b0486b34..69e886bcf477c7ace7c1d5d7a2fff9253922d580 100644
--- a/compiler/sparc/parms.lisp
+++ b/compiler/sparc/parms.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/parms.lisp,v 1.33 2001/10/03 14:03:47 toy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/parms.lisp,v 1.34 2002/03/31 14:48:41 pw Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -38,7 +38,7 @@
 (setf (backend-fasl-file-type *target-backend*) "sparcf")
 (setf (backend-fasl-file-implementation *target-backend*)
       sparc-fasl-file-implementation)
-(setf (backend-fasl-file-version *target-backend*) 7)
+(setf (backend-fasl-file-version *target-backend*) #x18d)
 (setf (backend-register-save-penalty *target-backend*) 3)
 (setf (backend-byte-order *target-backend*) :big-endian)
 (setf (backend-page-size *target-backend*)
diff --git a/compiler/x86/parms.lisp b/compiler/x86/parms.lisp
index d9358d76eef9ccf827b90ebbd81b9038a2926293..50ded4c3c2718e89e21c898d26d6bc3fbcddc6a4 100644
--- a/compiler/x86/parms.lisp
+++ b/compiler/x86/parms.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/x86/parms.lisp,v 1.18 2002/03/13 08:02:01 moore Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/parms.lisp,v 1.19 2002/03/31 14:48:41 pw Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -42,7 +42,7 @@
 (setf (backend-fasl-file-type *target-backend*) "x86f")
 (setf (backend-fasl-file-implementation *target-backend*)
       x86-fasl-file-implementation)
-(setf (backend-fasl-file-version *target-backend*) 2)
+(setf (backend-fasl-file-version *target-backend*) #x18d)
 (setf (backend-register-save-penalty *target-backend*) 3)
 (setf (backend-byte-order *target-backend*) :little-endian)