diff --git a/jtux_network.c b/jtux_network.c
index d1980b7..2296577 100755
--- a/jtux_network.c
+++ b/jtux_network.c
@@ -110,6 +110,7 @@
 {
 	jclass cls_s_sockaddr_in = (*env)->FindClass(env, "jtux/UNetwork$s_sockaddr_in");
 	jclass cls_s_sockaddr_in6 = (*env)->FindClass(env, "jtux/UNetwork$s_sockaddr_in6");
+	jclass cls_s_sockaddr_un = (*env)->FindClass(env, "jtux/UNetwork$s_sockaddr_un");
 	jclass cls_s_in_addr = (*env)->FindClass(env, "jtux/UNetwork$s_in_addr");
 	jclass cls_s_in6_addr = (*env)->FindClass(env, "jtux/UNetwork$s_in6_addr");
 
@@ -181,6 +182,22 @@
 			return false;
 	}
 		break;
+	case AF_UNIX: {
+		struct sockaddr_un *saddr = (struct sockaddr_un *)sa_c;
+		jmethodID mid;
+
+		if (*sa == NULL) {
+			if ((mid = (*env)->GetMethodID(env, cls_s_sockaddr_un, "<init>", "()V")) == NULL)
+				return false;
+			if ((*sa = (*env)->NewObject(env, cls_s_sockaddr_un, mid)) == NULL)
+				return false;
+		}
+		if (!field_ctoj_int(env, cls_s_sockaddr_un, "sun_family", *sa, saddr->sun_family))
+			return false;
+		if (!field_ctoj_string(env, cls_s_sockaddr_un, "sun_path", *sa, saddr->sun_path))
+			return false;
+	}
+		break;
 	default:
 		return false; // ??? can't deal with it
 	}
@@ -193,13 +210,19 @@
 	int fd;
 	struct sockaddr_storage sa_c;
 	socklen_t sa_len_c;
-
-	JTHROW_neg1(fd = accept(socket_fd, (struct sockaddr *)&sa_c, &sa_len_c))
-	if (fd != -1) {
-		if (!sockaddr_ctoj(env, &sa, (struct sockaddr *)&sa_c))
-			return -1;
-		if (!set_IntHolder_int(env, sa_len, sa_len_c))
-			return -1;
+	if(sa==NULL)
+	{
+		JTHROW_neg1(fd = accept(socket_fd, NULL, 0))
+	}
+	else
+	{
+		JTHROW_neg1(fd = accept(socket_fd, (struct sockaddr *)&sa_c, &sa_len_c))
+		if (fd != -1) {
+			if (!sockaddr_ctoj(env, &sa, (struct sockaddr *)&sa_c))
+				return -1;
+			if (!set_IntHolder_int(env, sa_len, sa_len_c))
+				return -1;
+		}
 	}
 	return fd;
 }
