diff --git a/code/defstruct.lisp b/code/defstruct.lisp
index 7206cbd7ebbc2f07d65e1ec204a367828b6efab8..b8ed70a14728a19edb50877a37cce34462dd33b3 100644
--- a/code/defstruct.lisp
+++ b/code/defstruct.lisp
@@ -567,7 +567,8 @@
   (let ((def (info type structure-info type)))
     (if (and def (eq (dd-type def) 'structure) (dd-predicate def))
 	`(and (structurep ,object)
-	      (or (eq (%primitive header-ref ,object 0) ',type)
+	      (if (eq (%primitive header-ref ,object 0) ',type)
+		  t
 		  (,(dd-predicate def) ,object)))
 	`(lisp::structure-typep ,object ',type))))