anchor.diff:                       ,isym ,@args)))))
   
   (defun jequals (x y)
  -  (jmethod-call (x "java.lang.Object")
  -                ("equals" "java.lang.Object")
  -                y))
  +  (do-jmethod-call (jcoerce x "java.lang.Object") "equals"
  +                   (jcoerce y "java.lang.Object")))
   
   (defmacro jnew-call ((class &rest arg-spec) &rest args)
     `(java:jnew (java:jconstructor ,class ,@arg-spec)
            ,@args))
   
  +
  +
  +(in-package :usocket)
  +
   (defun get-host-name ()
  -  (let ((localAddress (java:jstatic
  -                       (java:jmethod "java.net.InetAddress"
  -                                     "getLocalHost")
  -                       (java:jclass "java.net.InetAddress"))))
  -    (java:jcall (java:jmethod "java.net.InetAddress" "getHostName")
  -                localAddress)))
  +  (jdi:do-jmethod-call (jdi:do-jstatic-call "java.net.InetAddress"
  +                                            "getLocalHost")
  +                       "getHostName"))
   
   (defun handle-condition (condition &optional socket)
     (typecase condition
  
positive.code: (defun socket-connect (host port &key (element-type 'character))
    (let ((usock))
      (with-mapped-conditions (usock)
         (let ((sock (ext:make-socket (host-to-hostname host) port)))
           (setf usock
                 (make-stream-socket
                  :socket sock
                  :stream (ext:get-socket-stream sock
                                                 :element-type element-type)))))))
  
  (defun socket-listen (host port
  
negative.code:                            (backlog 5)
                             (element-type 'character))
    (let* ((reuseaddress (if reuse-address-supplied-p reuse-address reuseaddress))
           (sock-addr (jdi:do-jnew-call "java.net.InetSocketAddress"
                                        (host-to-hostname host)
                                        (jdi:jcoerce port :int)))
           (chan (jdi:do-jstatic-call "java.nio.channels.ServerSocketChannel"
                                      "open"))
           (sock (jdi:do-jmethod-call chan "socket")))
      (when reuseaddress
        (jdi:do-jmethod-call sock
                             "setReuseAddress"
                             (jdi:jcoerce reuseaddress :boolean)))
      (jdi:do-jmethod-call sock
                           "bind"
                           (jdi:jcoerce sock-addr
                                        "java.net.SocketAddress")
                           (jdi:jcoerce backlog :int))
      (make-stream-server-socket sock :element-type element-type)))
  
  (defmethod socket-accept ((socket stream-server-usocket) &key element-type)
    (let* ((jsock (socket socket))
           (jacc-sock (jdi:do-jmethod-call jsock "accept"))
           (jacc-stream
            (ext:get-socket-stream (jdi:jop-deref jacc-sock)
                                   :element-type (or element-type
                                                     (element-type socket)))))
      (make-stream-socket :socket jacc-sock
  