anchor.diff:          ,@supported_interfaces)
          (,@(loop for (name) in members
                   collect `(,(feature name) :initarg ,(key name)))))
  -     (defmethod shared-initialize ((value ,symbol) slot-names &key factory &allow-other-keys)
  -       (declare (ignore slot-names))
  +     (defmethod shared-initialize ((value ,symbol) slot-names &key factory
  +                                   create-for-unmarshal  &allow-other-keys)
  +       (declare (ignore slot-names create-for-unmarshal))
          (if factory (raise-system-exception 'CORBA:BAD_PARAM))
          (call-next-method))
        (defmethod object-id ((value ,symbol))
  
positive.code:                                          (eql corba:vm_truncatable (op:type_modifier tc)))))
                     (let ((chunking (or truncatable (> *chunking-level* 0)))
                           (repoid (cond (truncatable (truncatable-interfaces tc))
                                         ((not exact-type) id))))
                       (marshal-value-header repoid chunking buffer)
                       (marshal-value-state chunking 
                                            (all-feature-values tc value)
  
negative.code:          (marshal-multiple values types buffer))))
  
  
  (defparameter *exact-type-value-marshap-opt* t)
  
  (defun marshal-value (value buffer &optional expected-id)
    (flet ((marshal-value-1 (value buffer)
             (let ((id (object-id value)))
  