anchor.diff:             :bindings rest)))))
   
   (define-method unbind ((self naming-context) n)
  -  (if (= 1 (length n))
  -      (let ((path (pns-path self (elt n 0))))
  -        (delete-file path))
  -      (multiple-value-bind (next name)
  -          (pns-step self n)
  -        (op:unbind next name))))
  +  (pns-step-do self n
  +               (lambda () (let ((path (pns-path self (elt n 0))))
  +                            (delete-file path)))
  +               #'op:unbind))
   
   
   
  
positive.code:   (assert (= 1 (length n)))
    (let ((orb (op:_orb nc))
          (name-component (elt n 0)))
      (let ((path (pns-path nc name-component)))
        (ensure-directories-exist path)
        (handler-case
  
negative.code:      (subseq n 1))))
  
  
  (defun pns-step-do (self n local remote)
    (if (= 1 (length n))
      (funcall local)
      (multiple-value-bind (next name)
                           (pns-step self n)
        (funcall remote next name))))
  
  
  (define-method bind_context ((self naming-context) n nc)
    (unless nc
      (error 'CORBA:BAD_PARAM))
    (pns-step-do self n
                 (lambda () (pns-bind self n nc :ncontext))
                 (lambda (next name) (op:bind_context next name nc))))
  
  (define-method bind_new_context ((self naming-context) n)
    (pns-step-do self n
                 (lambda ()
                   (let ((nc (op:new_context self)))
                     (op:bind_context self n nc)
                     nc))
                 #'op:bind_new_context))
  
  (define-method bind ((self naming-context) n obj)
    (pns-step-do self n
                 (lambda () (pns-bind self n obj :nobject))
                 (lambda (next name) (op:bind next name obj))))
  
  (define-method rebind ((self naming-context) n obj)
    (pns-step-do self n
                 (lambda () (pns-bind self n obj :nobject t))
                 (lambda (next name) (op:rebind next name obj))))
  
  (define-method rebind_context ((self naming-context) n nc)
    (unless nc
      (error 'CORBA:BAD_PARAM))
    (pns-step-do self n
                 (lambda () (pns-bind self n nc :ncontext t))
                 (lambda (next name) (op:rebind_context next name nc))))
  
  (define-method resolve ((self naming-context) n)
    (pns-step-do self n
                 (lambda ()
                   (multiple-value-bind (type obj) (resolve1 self n)
                     (check-type type COSNAMING:BINDINGTYPE)
                     ;; should it check? type = :NOBJECT [NO!]
                     obj))
                 #'op:resolve))
  
  (define-method list ((self naming-context) how-many)
    (let* ((bindings
  