diff --git a/Xos_r.h xproto-7.0.23-git/Xos_r.h
index f963b64..f8b727b 100644
--- a/Xos_r.h
+++ xproto-7.0.23-git/Xos_r.h
@@ -88,6 +88,10 @@ in this Software without prior written authorization from The Open Group.
 # endif
 #endif /* _XOS_R_H */
 
+#ifdef __HAIKU__
+#define _POSIX_THREAD_SAFE_FUNCTIONS
+#endif
+
 #ifndef WIN32
 
 #ifdef __cplusplus
diff --git a/configure.ac xproto-7.0.23-git/configure.ac
index c4acf24..b3c82aa 100644
--- a/configure.ac
+++ xproto-7.0.23-git/configure.ac
@@ -99,6 +99,28 @@ if test "x$fds_bits_found" = xfalse ; then
 fi
 
 if test "x$fds_bits_found" = xfalse ; then
+AC_CHECK_MEMBER(fd_set.bits,
+			[
+			    fds_bits_found=plain_simple
+			    USE_FDS_BITS="bits"
+			],,
+			[
+                               #ifdef HAVE_SYS_PARAM_H
+                               #include <sys/param.h>
+                               #endif
+                               #ifdef HAVE_SYS_TYPES_H
+                               #include <sys/types.h>
+                               #endif
+                               #ifdef HAVE_SYS_TIME_H
+                               #include <sys/time.h>
+                               #endif
+                               #ifdef HAVE_SYS_SELECT_H
+			       #include <sys/select.h>
+                               #endif
+			])
+fi
+
+if test "x$fds_bits_found" = xfalse ; then
     AC_MSG_ERROR([Could not determine how to access the fds_bits or equivalent
                   structure in fd_set on your platform.])
 fi
