diff -ru src/def.h c/def.h
--- src/def.h	2007-12-06 17:30:56.000000000 +0100
+++ c/def.h	2013-10-19 18:42:55.118745730 +0200
@@ -2,14 +2,9 @@
 /* INT should always be 4 byte */
 #ifndef DEF_H
 
-
-#ifdef __alpha
-typedef  int INT;
-typedef unsigned  int  UINT;
-#else /* __alpha */
-typedef long INT;
-typedef unsigned long UINT;
-#endif /* __alpha */
+#include <stdint.h>
+typedef int32_t INT;
+typedef uint32_t UINT;
 
 #include <stdio.h>
 #include <memory.h>
@@ -65,10 +60,13 @@
 
 
 /* definitionen fuer object.c */
-typedef INT OBJECTKIND;   /* 4 byte */
+/* NOTE: partition code assumes that there is no unused space in the
+ * object struct when an INT is stored. This requires both OBJECTKIND
+ * and OBJECTSELF to have a size equal to a machine word. */
+typedef intptr_t OBJECTKIND;
 
 typedef union {
-	INT ob_INT;
+	intptr_t ob_INT;
 	INT * ob_INTpointer;
 	char *ob_charpointer;
 	struct bruch *ob_bruch;
