diff --git a/src/org/armedbear/lisp/socket.lisp b/src/org/armedbear/lisp/socket.lisp
--- a/src/org/armedbear/lisp/socket.lisp
+++ b/src/org/armedbear/lisp/socket.lisp
@@ -35,7 +35,7 @@
   ":ELEMENT-TYPE must be CHARACTER or (UNSIGNED-BYTE 8); the default is CHARACTER.
 EXTERNAL-FORMAT must be of the same format as specified for OPEN."
   (cond ((eq element-type 'character))
-        ((equal element-type '(unsigned-byte 8)))
+        ((subtypep element-type '(unsigned-byte 8)))
         (t
          (error 'simple-type-error
                 :format-control
