anchor.diff:        (with-standard-io-syntax ()
           (setq type (read stream))
           (setq ior (read stream))))
  -    (values type (op:string_to_object (op:_orb self) ior))))
  +    (values type
  +      (if (clorb::string-starts-with ior "IOR:")
  +          (op:string_to_object (op:_orb self) ior)
  +          ;; ior is actually only local id, create a reference with that id
  +          (op:create_reference_with_id (op:_default_POA self)
  +                                       (portableserver:string-to-oid ior)
  +                                       (clorb::object-id self))))))
  +
  +
   
   (defun opt-local (poa obj)
     (let (oid)
  
positive.code: 
  (defun pns-bind (nc n obj bind-type &optional rebind)
    (assert (= 1 (length n)))
    (let ((orb (op:_orb nc))
          (name-component (elt n 0)))
      ;; FIXME: if rebind, should check the type of (possibly) already existing binding
      (let ((path (pns-path nc name-component)))
        (ensure-directories-exist path)
  
negative.code: (defclass NAMING-MANAGER (portableserver:servantactivator)
    ())
  
  
  (define-method incarnate ((m naming-manager) oid adapter)
    (declare (ignore adapter))
    (let ((local-id (portableserver:oid-to-string oid)))
      (make-instance 'naming-context 
                     :local-id local-id
                     :base (merge-pathnames
                            (make-pathname :directory `(:relative ,local-id))
                            *naming-base-path*))))
  
  
  (defun setup-naming-poa ()
    (let* ((orb (CORBA:ORB_init))
  