anchor.diff:          (setf (cddr ref-entry) obj))
         obj)))
   
  +
  +;;; void register_initial_reference (in ObjectId id, in Object obj)
  +;;;    raises (InvalidName);
  +
  +(define-method register_initial_reference ((orb clorb-orb) id obj)
  +  (when (or (not (stringp id)) (equal id "")
  +            (assoc id (orb-initial-references orb)
  +                    :test #'string=))
  +    (error (CORBA:ORB/InvalidName)))
  +  (unless obj
  +    (raise-system-exception 'CORBA:BAD_PARAM 24 :completed_no))
  +  (set-initial-reference orb id nil obj))
  +
  +
  +
  +;;;; Thread related operations
  +
  +
   ;;;    boolean work_pending(  );
  +
   (define-method work_pending ((orb orb))
  -  ;; FIXME
  -  t)
  +  (io-work-pending-p))
  +
   
   ;;;    void perform_work( );
  +
   (define-method perform_work ((orb orb))
     (let ((*running-orb* t))
  -    (orb-wait)))
  +    (orb-work)))
  +
   
   ;;;    void run();
  +
   (define-method run ((orb orb))
     (unless *running-orb*
       (cerror "Run anyway"
  
positive.code:                        :accessor orb-initial-references)
     (default-initial-reference
      :initform nil
      :accessor orb-default-initial-reference)))
  
  
  
  
negative.code:                                    (marshal-object obj buffer))
                                   orb))))
  
  
  
  ;;;; Initial reference operations
  
  
  ;;;    ObjectIdList list_initial_services ();
  
  (define-method list_initial_references ((orb orb))
    (mapcar #'car (orb-initial-references orb)))
  
  
  ;;;    Object resolve_initial_references (in ObjectId identifier)
  ;;;      raises (InvalidName);
  
  (define-method resolve_initial_references ((orb orb) name)
    (let ((ref-entry
           (assoc name (orb-initial-references orb)
  