diff --git a/src/bootfiles/20e/boot-20f.lisp b/src/bootfiles/20e/boot-20f.lisp
new file mode 100644
index 0000000000000000000000000000000000000000..62024bac5b0d58998fe02bda7b06a0ace4b61f57
--- /dev/null
+++ b/src/bootfiles/20e/boot-20f.lisp
@@ -0,0 +1,68 @@
+;;;;
+;;;; Boot file for changing the fasl file version numbers to 20f.
+;;;;
+
+(in-package :c)
+
+(setf lisp::*enable-package-locked-errors* nil)
+
+;;;
+;;; Note that BYTE-FASL-FILE-VERSION is a constant.
+;;;
+;;; (Be sure to change BYTE-FASL-FILE-VERSION in
+;;; compiler/byte-comp.lisp to the correct value too!)
+;;;
+#-cmu20f
+(setf (symbol-value 'byte-fasl-file-version)       #x20f)
+#-cmu20f
+(setf (backend-fasl-file-version *target-backend*) #x20f)
+
+;;;
+;;; Don't check fasl versions in the compiling Lisp because we'll
+;;; load files compiled with the new version numbers.
+;;;
+#-cmu20f
+(setq lisp::*skip-fasl-file-version-check* t)
+
+;;;
+;;; This is here because BYTE-FASL-FILE-VERSION is constant-folded in
+;;; OPEN-FASL-FILE.  To make the new version number take effect, we
+;;; have to redefine the function.
+;;;
+#-cmu20f
+(defun open-fasl-file (name where &optional byte-p)
+  (declare (type pathname name))
+  (let* ((stream (open name :direction :output
+			    :if-exists :new-version
+			    :element-type '(unsigned-byte 8)
+			    :class 'binary-text-stream))
+	 (res (make-fasl-file :stream stream)))
+    (multiple-value-bind
+	(version f-vers f-imp)
+	(if byte-p
+	    (values "Byte code"
+		    byte-fasl-file-version
+		    (backend-byte-fasl-file-implementation *backend*))
+	    (values (backend-version *backend*)
+		    (backend-fasl-file-version *backend*)
+		    (backend-fasl-file-implementation *backend*)))
+      (format stream
+	      "FASL FILE output from ~A.~@
+	       Compiled ~A on ~A~@
+	       Compiler ~A, Lisp ~A~@
+	       Targeted for ~A, FASL version ~X~%"
+	      where
+	      (ext:format-universal-time nil (get-universal-time))
+	      (machine-instance) compiler-version
+	      (lisp-implementation-version)
+	      version f-vers)
+      ;;
+      ;; Terminate header.
+      (dump-byte 255 res)
+      ;;
+      ;; Specify code format.
+      (dump-fop 'lisp::fop-long-code-format res)
+      (dump-byte f-imp res)
+      (dump-unsigned-32 f-vers res))
+    res))
+
diff --git a/src/compiler/byte-comp.lisp b/src/compiler/byte-comp.lisp
index 49810d649f112759c6086d8e2b2ba8d880fdfd9e..2d2b3ac234bc70fe1dbff003d7f86be16eed466c 100644
--- a/src/compiler/byte-comp.lisp
+++ b/src/compiler/byte-comp.lisp
@@ -38,7 +38,7 @@
 ;; 0-9 followed by a single hex digit in the range a-f.  Then the
 ;; version looks like a decimal number followed by a minor release
 ;; letter of a to f.
-(defconstant byte-fasl-file-version #x20e)
+(defconstant byte-fasl-file-version #x20f)
 
 (let* ((version-string (format nil "~X" byte-fasl-file-version)))
   ;; Add :cmu<n> to *features*
diff --git a/src/docs/cmu-user/cmu-user.tex b/src/docs/cmu-user/cmu-user.tex
index ce459707bd7648257308e802dea9dcc6767f26bc..ee7eae031205c011626e274d04be70158b355a6c 100644
--- a/src/docs/cmu-user/cmu-user.tex
+++ b/src/docs/cmu-user/cmu-user.tex
@@ -48,7 +48,7 @@
 \newcommand{\keywords}{lisp, Common Lisp, manual, compiler, programming
 language implementation, programming environment}
 
-\date{October 2013 \\ 20e}
+\date{October 2014 \\ 20f}
 
 
 \begin{document}
diff --git a/src/general-info/release-20f.txt b/src/general-info/release-20f.txt
index 2cdc46084dabd86fb3096a4902cb3c5c263deaab..1dc4fb1298358584e51352260c3fbb1db00448c2 100644
--- a/src/general-info/release-20f.txt
+++ b/src/general-info/release-20f.txt
@@ -1,10 +1,8 @@
 ========================== C M U C L  20 f =============================
 
-[In Progress]
-
 The CMUCL project is pleased to announce the release of CMUCL 20f.
 This is a major release which contains numerous enhancements and
-bug fixes from the 20c release.
+bug fixes from the 20e release.
 
 CMUCL is a free, high performance implementation of the Common Lisp
 programming language which runs on most major Unix platforms. It
@@ -19,12 +17,12 @@ over the Internet, and is mostly in the public domain.
 New in this release:
 
   * Known issues:
-    * Support for x87 will be dropped after the 2014-04 snapshot. All
-      further snapshots will require an x86 chip that supports sse2.
-      SSE2 was introduced with the Pentium 4 in 2001.
+    * Support for x87 has been dropped (effective with the 2014-05
+      snapshot). All further releases will require an x86 chip that
+      supports sse2.  SSE2 was introduced with the Pentium 4 in 2001.
 
   * Feature enhancements
-    * Trig functions are signficantly faster.
+    * Trig functions are significantly faster.
     * Accuracy of trig functions improved. (Previously, they could be
       off by one or two ulp.)
     * RUN-PROGRAM accepts :ELEMENT-TYPE to allow specifying the
@@ -49,14 +47,14 @@ New in this release:
     * Micro-optimization:  (expt -1 power) just returns -1 or 1
       without actually computing the power.
     * Run-time checks for zero pages on newly allocated pages has been
-      disabled now that the lazy zeroing of the heap pages has been
-      the default for several months now.
+      disabled.  Lazy zeroing of the heap pages is the default
+      now. which can speed up GC and allocation.
     * Add lisp-unit as a contrib.  Use (require :lisp-unit) to load
       it.  Precompiled fasls are not included.
     * CMUCL now uses fdlibm C functions to implement the special
       functions. All platforms use this so they should produce
       identical results everywhere.
-    * Consing for the trig functions is removed now since we call out
+    * Consing for the trig functions is reduced now since we call out
       to fdlibm instead of implementing them in Lisp.
     * Source location information has been added for
       DEFINE-CONDITION. (From Helmut Eller.)
@@ -79,12 +77,12 @@ New in this release:
     * On the ppc port, handle FP exceptions a bit better by not
       failing if cmucl is unable to interpret the instruction that
       caused the exception.
-    * Microoptimization for sparc in rounding a double-float to a
+    * Micro-optimization for sparc in rounding a double-float to a
       32-bit signed integer.
     * The compiler can now derive the type of ROUND. (But more work is
       needed.)
     * Fix an issue with multi-processing destroy-process doesn't take
-      effect for a schedulable processbecause it has no run-reason
+      effect for a schedulable process because it has no run-reason
       and/or arrest-reason.
 
   * ANSI compliance fixes:
@@ -120,7 +118,7 @@ New in this release:
       cleared.
     * In some situations KERNEL:DOUBLE-FLOAT-BITS on x86 would cause a
       segfault. This has been fixed.
-    * For linux, motifd is no longer a 64-bit app.
+    * For Linux, motifd is no longer a 64-bit app.
     * (exp 1d0) now returns the correctly rounded value of
       e. Previously, it was off by one bit.
     * INTEGER-DECODE-FLOAT returns the correct values for denormal