--- a/libhashkit/common.h
+++ b/libhashkit/common.h
@@ -44,12 +44,22 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
+#include <limits.h>
 
 #ifndef __WORDSIZE
 # ifdef __MINGW32__
 #  define __WORDSIZE 32
 # endif
 #endif
+
+/* last try - use information from limits.h */
+#ifndef __WORDSIZE
+# if ULONG_MAX == 0xffffffffffffffff
+#  define __WORDSIZE 64
+# elif ULONG_MAX == 0xffffffff
+#  define __WORDSIZE 32
+# endif /* ULONG_MAX */
+#endif /* __WORDSIZE */
 
 #include <libhashkit-1.0/hashkit.h>
 #include "libhashkit/algorithm.h"