- (let ((value (funcall reader-function object)))
- (if (eq value unbound-value)
- (slot-unbound (class-of object) object (slot-definition-name slotd))
- value)))))
+ (if (not (funcall boundp object))
+ (slot-unbound (class-of object) object (slot-definition-name slotd))
+ (funcall reader-function object)))))