# GET-ADDRESS now works with underlying IP6 addresses 
#
# Fix SOCKET-ACCEPT to follow the documented API so that when
# called without an :ELEMENT-TYPE argument, use the ELEMENT-TYPE
# of specified in the call to SOCKET-LISTEN.
diff --git a/backend/abcl.lisp b/backend/abcl.lisp
--- a/backend/abcl.lisp
+++ b/backend/abcl.lisp
@@ -67,7 +67,7 @@
 (defvar $@connect/Socket/1 (jmethod $*Socket "connect" $*SocketAddress))
 (defvar $@connect/Socket/2 (jmethod $*Socket "connect" $*SocketAddress $*int))
 (defvar $@connect/SocketChannel/1 (jmethod $*SocketChannel "connect" $*SocketAddress))
-(defvar $@getAddress/0 (jmethod $*Inet4Address "getAddress"))
+(defvar $@getAddress/0 (jmethod $*InetAddress "getAddress"))
 (defvar $@getAllByName/1 (jmethod $*InetAddress "getAllByName" $*String))
 (defvar $@getByName/1 (jmethod $*InetAddress "getByName" $*String))
 (defvar $@getChannel/DatagramSocket/0 (jmethod $*DatagramSocket "getChannel"))
@@ -170,9 +170,13 @@
       (labels ((jbyte (n)
 		 (let ((byte (jarray-ref array n)))
 		   (if (minusp byte) (+ 256 byte) byte))))
-	(if (= 4 length)
-	    (vector (jbyte 0) (jbyte 1) (jbyte 2) (jbyte 3))
-	    nil))))) ; not a IPv4 address?!
+	(cond  
+          ((= 4 length)
+           (vector (jbyte 0) (jbyte 1) (jbyte 2) (jbyte 3)))
+          ((= 16 length)
+           (vector (jbyte 0) (jbyte 1) (jbyte 2) (jbyte 3) 
+                   (jbyte 4) (jbyte 5) (jbyte 6) (jbyte 7)))
+          (t nil)))))) ; neither a IPv4 nor IPv6 address?!
 
 (defun get-hosts-by-name (name)
   (with-mapped-conditions ()
@@ -249,9 +253,13 @@
 
 ;;; SOCKET-ACCEPT
 
-(defmethod socket-accept ((usocket stream-server-usocket) &key (element-type 'character))
+(defmethod socket-accept ((usocket stream-server-usocket) 
+                          &key (element-type 'character element-type-p))
   (with-mapped-conditions (usocket)
     (let* ((client-socket (jcall $@accept/0 (socket usocket)))
+           (element-type (if element-type-p 
+                             element-type
+                             (element-type usocket)))
 	   (stream (ext:get-socket-stream client-socket :element-type element-type)))
       (make-stream-socket :stream stream :socket client-socket))))
 
