I have to agree that the manual needs clarification on the point of the behavior of DEFSTRUCT-defined predicates. I would intrepret the penultimate paragraph on page 306 as indicating by example that any object whatsoever may be given to SHIP-P (and by extension to any DEFSTRUCT-defined predicate). It would follow that the VaxLISP implementation is at fault. --Guy