diff --git a/src/bootfiles/20e/boot-2014-06-1.lisp b/src/bootfiles/20e/boot-2014-06-1.lisp
new file mode 100644
index 0000000000000000000000000000000000000000..8b1dca5793d2e1e616faa4d3d6e2ea5ac6f54fe3
--- /dev/null
+++ b/src/bootfiles/20e/boot-2014-06-1.lisp
@@ -0,0 +1,4 @@
+;; Define source-location/class info type so that code/error.lisp can
+;; be compiled.
+(in-package c)
+(define-info-type source-location class (or form-numbers null) nil)
diff --git a/src/code/error.lisp b/src/code/error.lisp
index 3fc7f815b605fb08dd20db00b58f991f6e73a2e7..ee44212c17cd9bf99ff5018a77b28552db51c32a 100644
--- a/src/code/error.lisp
+++ b/src/code/error.lisp
@@ -597,7 +597,7 @@
 ;;;; DEFINE-CONDITION
 
 (eval-when (compile load eval)
-(defun %compiler-define-condition (name direct-supers layout)
+(defun %compiler-define-condition (name direct-supers layout source-location)
   (multiple-value-bind (class old-layout)
 		       (insured-find-class name #'condition-class-p
 					   #'make-condition-class)
@@ -625,7 +625,9 @@
     ;; Initialize CPL slot.
     (setf (condition-class-cpl class)
 	  (remove-if-not #'condition-class-p 
-			 (std-compute-class-precedence-list class))))
+			 (std-compute-class-precedence-list class)))
+
+    (setf (info :source-location :class name) source-location))
   (undefined-value))
 
 ); eval-when (compile load eval)
@@ -872,7 +874,8 @@
 
       `(progn
 	 (eval-when (compile load eval)
-	   (%compiler-define-condition ',name ',parent-types ',layout))
+	   (%compiler-define-condition ',name ',parent-types ',layout
+				       (c::source-location)))
 
 	 (declaim (ftype (function (t) t) ,@(all-readers)))
 	 (declaim (ftype (function (t t) t) ,@(all-writers)))
diff --git a/src/compiler/globaldb.lisp b/src/compiler/globaldb.lisp
index ae7b565ede216f7bceb8967f763baf39547b7b3c..8d182c8342a7832ad550705da6f5f0c203dc0646 100644
--- a/src/compiler/globaldb.lisp
+++ b/src/compiler/globaldb.lisp
@@ -1174,6 +1174,10 @@
 ;;; location for defstruct and deftype.
 (define-info-class source-location)
 (define-info-type source-location defvar (or form-numbers null) nil)
+;; This is used for define-condition.  It could also be used for
+;; defclass but PCL classes already have a "definition-source" slot and we
+;; store it there.
+(define-info-type source-location class (or form-numbers null) nil)
 
 ;; The textdomain for the documentation
 (define-info-type function textdomain (or string null) nil)