diff --git a/code/misc.lisp b/code/misc.lisp
index e81bc42e8a8153ce8ce1028d4bebb229b36e59d7..425712d6bba9829d3554780b0d92ade103cc5a23 100644
--- a/code/misc.lisp
+++ b/code/misc.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/misc.lisp,v 1.32 2003/09/25 02:40:13 toy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/misc.lisp,v 1.33 2003/09/25 14:08:33 toy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -124,6 +124,18 @@
 #+pentium
 (sys:register-lisp-runtime-feature :pentium)
 
+#+sparc-v7
+(sys:register-lisp-runtime-feature :sparc-v7)
+
+#+sparc-v8
+(sys:register-lisp-runtime-feature :sparc-v8)
+
+#+sparc-v9
+(sys:register-lisp-runtime-feature :sparc-v9)
+
+#+complex-fp-vops
+(sys:register-lisp-feature :complex-fp-vops)
+
 (defun featurep (x)
   "If X is an atom, see if it is present in *FEATURES*.  Also
   handle arbitrary combinations of atoms using NOT, AND, OR."
diff --git a/code/sysmacs.lisp b/code/sysmacs.lisp
index b69b52fff4e742773f654415789669602014883b..9ea3717bd27ecb396229ba9138b74b7fa6bfa50d 100644
--- a/code/sysmacs.lisp
+++ b/code/sysmacs.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/sysmacs.lisp,v 1.28 2003/09/25 02:40:13 toy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/sysmacs.lisp,v 1.29 2003/09/25 14:08:33 toy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -19,14 +19,16 @@
 
 (defmacro register-lisp-feature (feature)
   "Register the feature as having influenced the CMUCL build process."
-  `(pushnew ',feature *features*))
+  `(pushnew ,feature *features*))
 
 (defmacro register-lisp-runtime-feature (feature)
   "Register the feature as having influenced the CMUCL build process,
 and also the CMUCL C runtime."
-   `(progn
-     (pushnew ',feature *features*)
-     (pushnew ',feature sys::*runtime-features*)))
+  (let ((f (gensym)))
+    `(progn
+      (let ((,f ,feature))
+	(pushnew ,f *features*)
+	(pushnew ,f sys::*runtime-features*)))))
 
 (in-package "LISP")
 
diff --git a/compiler/byte-comp.lisp b/compiler/byte-comp.lisp
index 41151ca36225d181211a8b61935111e7257aae3b..2074021242f8444f3e48d4f57df5ef57d3b4b0a0 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.38 2003/09/04 15:05:06 gerd Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/byte-comp.lisp,v 1.39 2003/09/25 14:08:33 toy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -34,6 +34,12 @@
 
 (defconstant byte-fasl-file-version #x18e)
 
+(let* ((version-string (format nil "~X" byte-fasl-file-version)))
+  (sys:register-lisp-feature (intern (concatenate 'string "CMU" version-string) :keyword))
+  (sys:register-lisp-feature (intern (concatenate 'string "CMU"
+						  (subseq version-string 0 (1- (length version-string))))
+				     :keyword)))
+
 (defun backend-byte-fasl-file-type (backend)
   (ecase (backend-byte-order backend)
     (:big-endian "bytef")