diff --git a/code/room.lisp b/code/room.lisp
index d2f9b5f4c1de16a04e4b7a8d74deace27ca1ff21..ea2fce308b860ca396a0355ee1c8d0cb5b1d6480 100644
--- a/code/room.lisp
+++ b/code/room.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/room.lisp,v 1.21 1993/03/02 15:53:52 ram Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/room.lisp,v 1.22 1993/05/10 08:54:21 ram Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -760,22 +760,30 @@
     (map-allocated-objects
      #'(lambda (obj type size)
 	 (when (eql type code-header-type)
-	   (let* ((dinfo (%code-debug-info obj))
+	   (let* ((dinfo (let ((x (%code-debug-info obj)))
+			   (when (typep x 'c::compiled-debug-info) x)))
 		  (package (if dinfo
 			       (c::compiled-debug-info-package dinfo)
 			       "UNKNOWN"))
 		  (pkg-info (or (gethash package packages)
 				(setf (gethash package packages)
 				      (make-hash-table :test #'equal))))
-		  (file (if dinfo
-			    (let ((source
-				   (first (c::compiled-debug-info-source
-					   dinfo))))
-			      (if (eq (c::debug-source-from source)
-				      :file)
-				  (c::debug-source-name source)
-				  "FROM LISP"))
-			    "UNKNOWN"))
+		  (file
+		   (if dinfo
+		       (let ((src (c::compiled-debug-info-source dinfo)))
+			 (cond (src
+				(let ((source
+				       (first
+					(c::compiled-debug-info-source
+					 dinfo))))
+				  (if (eq (c::debug-source-from source)
+					  :file)
+				      (c::debug-source-name source)
+				      "FROM LISP")))
+			       (t
+				(warn "No source for ~S" obj)
+				"NO SOURCE")))
+		       "UNKNOWN"))
 		  (file-info (or (gethash file pkg-info)
 				 (setf (gethash file pkg-info)
 				       (cons 0 0)))))