diff --git a/compiler/proclaim.lisp b/compiler/proclaim.lisp
index 9569660b1467544ea11d2f8c58118e8f9e53b594..564b5394ff8af85570124435fd6cd12c8b44f4f1 100644
--- a/compiler/proclaim.lisp
+++ b/compiler/proclaim.lisp
@@ -187,7 +187,11 @@
 
   (let ((name (dd-name info)))
     (dolist (inc (dd-includes info))
-      (pushnew name (dd-included-by (info type structure-info inc))))
+      (let ((info (info type structure-info inc)))
+	(unless info
+	  (error "Structure type ~S is included by ~S but not defined."
+		 inc name))
+	(pushnew name (dd-included-by info))))
 
     (let ((old (info type structure-info name)))
       (when old
@@ -198,10 +202,6 @@
     (when (info type expander name)
       (setf (info type expander name) nil)))
 
-  (dolist (inc (dd-includes info))
-    (pushnew (dd-name info)
-	     (dd-included-by (info type structure-info inc))))
-
   ;;; ### Should declare arg/result types. 
   (let ((copier (dd-copier info)))
     (when copier