anchor.diff:      (raise-system-exception 'CORBA:BAD_INV_ORDER 3 :completed_yes))
     (unless (eq :inactive (poa-effective-state poa))
       (setf (poa-state poa) :discarding))
  +  (let ((manager (op:the_poamanager poa)))
  +    (remove-poa manager poa))
     (dolist (child (op:the_children poa))
       (op:destroy child etherealize-objects wait-for-completion))
     ;; wait for ongoing requests to finnish,
  
positive.code: 
  |#
  
  (define-method destroy ((poa PortableServer:POA) etherealize-objects wait-for-completion)
  #|
  * If wait_for_completion is TRUE and the current thread is in an invocation
  
negative.code:   (when (and poa (find name (op:the_children poa)
                         :key #'op:the_name :test #'equal))
      (error 'PortableServer:POA/AdapterAlreadyExists))
    (setq manager (or manager (make-instance 'PortableServer:poamanager)))
    (let ((newpoa
           (make-instance 'PortableServer:POA
             :the_name name
             :the_parent poa
             :the_poamanager manager
             :policies policies
             :poaid (or poaid (incf *last-poaid*))
             :orb orb)))
      (add-poa manager newpoa)
      (when poa
        (push newpoa (slot-value poa 'the_children)))
      (register-poa newpoa)
  