anchor.diff:         (setf list (delete old list)))
        (setf (,context-accessor self) (cons service_context list))))
   
  -(define-method "ADD_REQUEST_SERVICE_CONTEXT" ((self client-request)
  +(define-method "ADD_REQUEST_SERVICE_CONTEXT" ((self client-request-info)
                                                       service_context replace)
  -  (%add-service-context self service-context-list 
  +  (%add-service-context (the-request self) service-context-list 
                           service_context replace))
   
  -(define-method "REQUEST_ID" ((self client-request))
  -  (request-id self))
  -
  -(define-method "OPERATION" ((self client-request))
  -  (request-operation self))
  -
  -(define-method "ARGUMENTS" ((self client-request))
  +(define-method "REQUEST_ID" ((self client-request-info))
  +  (request-id (the-request self)))
  +
  +(define-method "OPERATION" ((self client-request-info))
  +  (request-operation (the-request self)))
  +
  +(define-method "ARGUMENTS" ((self client-request-info))
     (map 'list
          (lambda (param)
            (Dynamic:Parameter :argument (op:argument param)
                               :mode (op:arg_modes param)))
  -       (cdr (request-paramlist self))))
  -
  -(define-method "EXCEPTIONS" ((self client-request))
  -   (request-exceptions self))
  -
  -(define-method "CONTEXTS" ((self client-request))
  +       (cdr (request-paramlist (the-request self)))))
  +
  +(define-method "EXCEPTIONS" ((self client-request-info))
  +   (request-exceptions (the-request self)))
  +
  +(define-method "CONTEXTS" ((self client-request-info))
     nil)
   
  -(define-method "OPERATION_CONTEXT" ((self client-request))
  +(define-method "OPERATION_CONTEXT" ((self client-request-info))
     nil)
   
  -(define-method "RESULT" ((self client-request))
  -  (op:return_value self))
  -
  -(define-method "RESPONSE_EXPECTED" ((self client-request))
  -  (response-expected self))
  -
  -(define-method "REPLY_STATUS" ((self client-request))
  +(define-method "RESULT" ((self client-request-info))
  +  (op:return_value (the-request self)))
  +
  +(define-method "RESPONSE_EXPECTED" ((self client-request-info))
  +  (response-expected (the-request self)))
  +
  +(define-method "REPLY_STATUS" ((self client-request-info))
   #| FIXME:
   This attribute describes the state of the result of the operation invocation. 
   Its value can be one of the following:
  
positive.code:   (declare (ignore operation)))
  
  
  ;;;; ClientRequestInfo aspect of client-request
  
  
  (define-method "TARGET" ((self client-request))
     (request-target self))
  
  (define-method "EFFECTIVE_TARGET" ((self client-request))
    (let ((target (request-target self)))
      (or (object-forward target) target)))
  
  (define-method "EFFECTIVE_PROFILE" ((self client-request))
   (request-effective-profile self))
  
  
  ;;; readonly attribute any received_exception;
  
negative.code: ;;;; Request Classes 
  
  (defclass pi-request (PortableInterceptor:RequestInfo)
    ((flow-stack   :accessor flow-stack  :initform nil)
     (request-info)))
  
  (defgeneric request-info (pi-request))
  
  
  (defclass pi-client-request (pi-request client-request)
    ())
  
  (defclass pi-server-request (pi-request server-request)
    ())
  
  
  (defclass client-request-info (PortableInterceptor:ClientRequestInfo)
    ((request  :initarg :request  :accessor the-request)))
  
  (defclass server-request-info (PortableInterceptor:ServerRequestInfo)
    ((request  :initarg :request  :accessor the-request)))
  
  
  (defmethod request-info ((self pi-client-request))
    (with-cache-slot (self request-info)
      (make-instance 'client-request-info :request self)))
  
  (defmethod request-info ((self pi-server-request))
    (with-cache-slot (self request-info)
      (make-instance 'server-request-info :request self)))
  
  
  (defgeneric run-interceptors (req list operation))
  (defgeneric rerun-interceptors (req operation))
  