- (prog1 (call-next-method)
- (unless (attribute-setter object)
- (setf (attribute-setter object)
- (lambda (v o)
- (setf (slot-value o (attribute-slot-name object)) v))))))
+ (with-active-descriptions (editable)
+ (prog1 (call-next-method)
+ (unless (attribute-setter object)
+ (setf (attribute-setter object)
+ (lambda (v o)
+ (if (unbound-slot-value-p v)
+ (slot-makunbound o (attribute-slot-name object))
+ (setf (slot-value o (attribute-slot-name object)) v))))))))