anchor.diff:      ;; 1 byte:  Result            [0 means OK, >0 means ERROR]
       ;; 2 bytes: Creation          [?]
       (handler-case
  -	(let* ((alive2-response (read-bytes 4 epmd))
  -	       (tag (aref alive2-response 0))
  -	       (result (aref alive2-response 1))
  -	       (creation (bytes-to-uint16 (subseq alive2-response 2))))
  -	  (declare (ignore creation))
  -	  (cond
  -	    ((/= tag +alive2-resp+)
  -	     (error 'unexpected-message-tag-error
  -		    :tag tag
  -		    :expected-tags (list +alive2-resp+)))
  -	    ((/= 0 result)
  -	     (error 'epmd-response-error))
  -	    (t
  -	     socket)))
  +        (let* ((alive2-response (read-bytes 4 epmd))
  +               (tag (aref alive2-response 0))
  +               (result (aref alive2-response 1))
  +               (creation (bytes-to-uint16 (subseq alive2-response 2))))
  +          (declare (ignore creation))
  +          (cond
  +            ((/= tag +alive2-resp+)
  +             (error 'unexpected-message-tag-error
  +                    :tag tag
  +                    :expected-tags (list +alive2-resp+)))
  +            ((/= 0 result)
  +             (error 'epmd-response-error))
  +            (t
  +             socket)))
         (end-of-file () (error 'connection-closed-error))) ))
   
   (defun epmd-unpublish (socket)
  
positive.code: 
  (defun epmd-publish (port &optional (node-name "lispnode"))
    (let* ((socket (handler-case
  		     (usocket:socket-connect "localhost" +epmd-port+
  					     :element-type '(unsigned-byte 8))
  		   (usocket:connection-refused-error ()
  		     (error 'epmd-unreachable-error))))
  	 (epmd (usocket:socket-stream socket)))
      ;;;; ALIVE2_REQ ;;;;
      ;; 2 bytes: Total length of following message in bytes
      ;; 1 byte:  'x'               [ALIVE2_REQ message]
  
negative.code:     ;; 2 bytes: Extra field length
      ;; M bytes: Extra field
      (handler-case
          (let ((tag (read-byte epmd))
                (result (read-byte epmd)))
            (cond
              ((/= tag +port2-resp+)
               (error 'unexpected-message-tag-error
                      :tag tag
                      :expected-tags (list +port2-resp+)))
              ((/= 0 result)
               nil) ;; No nodes with that name.
              (t
               (let* ((port2-response (read-bytes 10 epmd))
                      (node-name-length (bytes-to-uint16 (subseq port2-response 8)))
                      (node-name (bytes-to-string (read-bytes node-name-length epmd)))
                      (extra-field-length (bytes-to-uint16 (read-bytes 2 epmd)))
                      (extra-field (read-bytes extra-field-length epmd)))
                 (make-instance 'remote-node
                                :port (bytes-to-uint16 port2-response)
                                :node-type (case (aref port2-response 2)
                                             (#.+node-type-hidden+ 'hidden)
                                             (#.+node-type-erlang+ 'erlang)
                                             (otherwise
                                              (error 'malformed-message-error
                                                     :bytes port2-response)))
                                :protocol (aref port2-response 3)
                                :lowest-version (bytes-to-uint16 (subseq port2-response 4 6))
                                :highest-version (bytes-to-uint16 (subseq port2-response 6 8))
                                :name node-name
                                :host host
                                :extra-field extra-field) ))))
        (end-of-file () (error 'connection-closed-error))) ))
  