diff -Nur vmdesched-only.orig/vm_basic_types.h vmdesched-only/vm_basic_types.h
--- vmdesched-only.orig/vm_basic_types.h	2007-11-30 04:03:23.000000000 +0100
+++ vmdesched-only/vm_basic_types.h	2008-03-10 15:55:41.000000000 +0100
@@ -13,6 +13,16 @@
 #ifndef _VM_BASIC_TYPES_H_
 #define _VM_BASIC_TYPES_H_
 
+/*
+ * Since we do some kernel version checks in here, make sure to include
+ * compat_version.h.
+ * <linux/types.h> is needed for uintptr on 2.6.24
+ *
+ * by Alexander Griesser <work@tuxx-home.at>, 2008-03-10
+ */
+#include "compat_version.h"
+#include <linux/types.h>
+
 #define INCLUDE_ALLOW_USERLEVEL
 #define INCLUDE_ALLOW_VMMEXT
 #define INCLUDE_ALLOW_MODULE
@@ -163,17 +173,25 @@
 #      endif
 #   endif
 
-#   ifndef _STDINT_H
-#      ifdef VM_I386
-#         ifdef VM_X86_64
-             typedef uint64    uintptr_t;
-#         else
-             typedef uint32    uintptr_t;
+/*
+ * uintptr_t is defined since 2.6.24, so defining it here will lead to
+ * compile errors.
+ *
+ * by Alexander Griesser <work@tuxx-home.at>, 2008-03-10
+ */
+#   if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
+#      ifndef _STDINT_H
+#         ifdef VM_I386
+#            ifdef VM_X86_64
+                typedef uint64    uintptr_t;
+#            else
+                typedef uint32    uintptr_t;
+#            endif
 #         endif
-#      endif
 
-#      ifdef VM_IA64
-          typedef uint64    uintptr_t;
+#         ifdef VM_IA64
+             typedef uint64    uintptr_t;
+#         endif
 #      endif
 #   endif
 #endif
@@ -285,9 +303,18 @@
 #define asPercent(v)	((Percent)(v))
 #define CHOOSE_PERCENT  asPercent(-1)
 
-
-typedef uintptr_t VA;
-typedef uintptr_t VPN;
+/* 
+ * Odd as it may seem, `typedef uintptr_t VA` doesn't work when uintptr_t is defined as
+ * unsigned long.
+ * If anyone is able to tell me why, please don't hesitate to contact me.
+ *
+ * NTL, as uintptr_t seems to be always "unsigned long" on 2.6.24+ I replaced it here
+ * to keep it simple.
+ *
+ * by Alexander Griesser <work@tuxx-home.at>, 2008-03-10
+ */
+typedef unsigned long VA;
+typedef unsigned long VPN;
 
 typedef uint64    PA;
 typedef uint32    PPN;
@@ -328,8 +355,13 @@
  * Linear address
  */
 
-typedef uintptr_t LA;
-typedef uintptr_t LPN;
+/* 
+ * See the comments in line 320 why typedef'ing uintptr_t doesn't work.
+ *
+ * by Alexander Griesser <work@tuxx-home.at>, 2008-03-10
+ */
+typedef unsigned long LA;
+typedef unsigned long LPN;
 #define LA_2_LPN(_la)     ((_la) >> PAGE_SHIFT)
 #define LPN_2_LA(_lpn)    ((_lpn) << PAGE_SHIFT)
 

