diff --git a/code/defstruct.lisp b/code/defstruct.lisp
index 8f27b0f7b08e4aebeb81987f69ade9b02ff86d38..a03b866c1321d8c9f60e557793caf358afd9690d 100644
--- a/code/defstruct.lisp
+++ b/code/defstruct.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/defstruct.lisp,v 1.101 2010/04/20 17:57:44 rtoy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/defstruct.lisp,v 1.102 2010/04/23 13:23:29 rtoy Rel $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -487,6 +487,7 @@
 	     ,@(define-raw-accessors defstruct)
 	     ,@(define-constructors defstruct)
 	     ,@(define-class-methods defstruct)
+	     (lisp::set-defvar-source-location ',name (c::source-location))
 	   ',name))
 	`(progn
 	   (eval-when (compile load eval)
@@ -495,6 +496,7 @@
 	   ,@(define-predicate defstruct)
 	   ,@(define-accessors defstruct)
 	   ,@(define-copier defstruct)
+	   (lisp::set-defvar-source-location ',name (c::source-location))
 	   ',name))))
 	   
 
diff --git a/code/macros.lisp b/code/macros.lisp
index d1ef3e9e6fb0f8dccde9a424e2bc847dd001b867..9ea8d3233806c2c4e6c6bfc767afca42ae10dcd6 100644
--- a/code/macros.lisp
+++ b/code/macros.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/macros.lisp,v 1.117 2010/04/20 17:57:44 rtoy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/macros.lisp,v 1.118 2010/04/23 13:23:29 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -242,6 +242,7 @@
       (when doc
 	(intl::note-translatable intl::*default-domain* doc))
       `(eval-when (:compile-toplevel :load-toplevel :execute)
+	 (set-defvar-source-location ',name (c::source-location))
 	 (%deftype ',name
 		   #'(lambda (,whole)
 		       ,@local-decs
diff --git a/compiler/globaldb.lisp b/compiler/globaldb.lisp
index 7bbd0c8127727fade90779c5c19db8362e05444f..89066a6d91c9c4f40b105c9c73ab39f4a7183afc 100644
--- a/compiler/globaldb.lisp
+++ b/compiler/globaldb.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/globaldb.lisp,v 1.56 2010/04/20 17:57:46 rtoy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/globaldb.lisp,v 1.57 2010/04/23 13:23:29 rtoy Rel $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -1168,8 +1168,10 @@
 (define-info-class random-documentation)
 (define-info-type random-documentation stuff list ())
 
-;;; Used to record the source-location of definitions.
-;;;
+;;; Used to record the source-location of definitions.  Despite the
+;;; type name of "defvar", this holds the location information for
+;;; defvar, defparameter, and defconstant.  It also has the source
+;;; location for defstruct and deftype.
 (define-info-class source-location)
 (define-info-type source-location defvar (or form-numbers null) nil)