anchor.diff:    (let ((local-hostname (machine-instance)))
       (dolist (server *servers*)
         (handler-case 
  -          (let ((port (frpc.bind:call-get-port +nsm-program+ +nsm-version+
  +          (let ((port (frpc.bind:call-get-port +nsm-program+ 
                                                    :query-protocol :udp
                                                    :host server
                                                    :protocol :udp)))
  
positive.code:   ;; if no port specified, then use port-mapper to find it
    (unless port
      (setf port 
  	  (frpc.bind:call-get-port program version 
  				     :query-protocol :udp 
  				     :protocol :udp
  				     :host hostname)))
  
negative.code: 
  (defun register-client (hostname &key function id private)
    "Register to receive notifications on state changes of host named by HOSTNAME. To receive notifications, either supply a function of signature (hostname state private) or a MY-ID structure so receive notifications via RPC. If supplied, PRIVATE should be an array of 16 octets."
    (flet ((get-port (program)
             (frpc.bind:call-get-port program 
                                        :query-protocol :udp 
                                        :protocol :udp
                                        :timeout nil
                                        :host hostname)))
      (let ((client (make-client :hostname hostname
                                  :port (when id (get-port (my-id-program id)))
                                  :id id
                                  :function function
                                  :private (or private (nibbles:make-octet-vector 16)))))
  