anchor.diff:  ;; transaction context that differs from that of the request.
   
   (define-method op::get_response ((req client-request))
  +  (unless (remove-pending-request (the-orb req) req)
  +    ;; FIXME: ??
  +    (raise-system-exception 'CORBA:BAD_INV_ORDER))
     (request-get-response req)
     (values))
   
   
  +;;; boolean poll_response ();
  +;;
  +;; poll_response determines whether the request has completed. A TRUE return indicates
  +;; that it has; FALSE indicates it has not.
  +;;
  +;; Return is immediate, whether the response has completed or not. Values in the request are
  +;; not changed.
  +
  +;; Exception BAD_INV_ORDER with minor
  +;;  * 11 - request not sendt
  +;;  * 12 - request already returned
  +;;  * 13 - request invoked
  +
   (define-method poll_response ((req client-request))
  -  ;; FIXME: possibly (orb-wait ...) if without timeout
  -  (not (null (request-status req))))
  -
  +  ;; FIXME: 13
  +  (case (request-status req)
  +    ((:initial) (raise-system-exception 'CORBA:BAD_INV_ORDER 11 :completed_no))
  +    ((:returned) (raise-system-exception 'CORBA:BAD_INV_ORDER 12 :completed_yes))
  +    ((nil) nil)
  +    (otherwise t)))
   
   
   ;;; void invoke ()
   
   (define-method op::invoke ((req client-request))
  -  (op:send_deferred req)
  -  (op:get_response req))
  +  (request-send req)
  +  (request-get-response req)
  +  (values))
   
   
   (defun request-funcall (req)
  
positive.code:    (effective-profile
      :accessor request-effective-profile)
     (status
      :initarg :status                :initform nil
      :accessor request-status)
     (buffer
      :initarg :buffer                :initform nil
  
negative.code:   (request-wait-response req)
    (let ((buffer (request-buffer req)))
      (case (request-status req)
        (:initial (raise-system-exception 'CORBA:BAD_INV_ORDER))
        (:error                             ; Communication error
         (setf (request-status req) :system_exception)
         (request-handle-error req))
  