diff --git a/configure.ac b/configure.ac
index 31bf542..495a0ed 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,6 +20,9 @@ AC_CHECK_HEADERS([arpa/inet.h errno.h fcntl.h netdb.h netinet/in.h stdlib.h stri
 AC_C_CONST
 AC_HEADER_TIME
 AC_STRUCT_TM
+AC_CHECK_TYPES(socklen_t, [], [],
+  [#include <sys/types.h>
+   #include <sys/socket.h>])
 
 # Checks for library functions.
 AC_FUNC_FORK
diff --git a/rinetd.c b/rinetd.c
index 7003673..8133d01 100644
--- a/rinetd.c
+++ b/rinetd.c
@@ -1027,7 +1027,11 @@ void handleAccept(int i)
 	struct in_addr address;
 	char const *addressText;
 	int j;
+#if HAVE_SOCKLEN_T
+	socklen_t addrlen;
+#else
 	int addrlen;
+#endif
 	int index = -1;
 	int o;
 	SOCKET nfd;