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))))