diff -Nur vmblock-only.orig/include/vm_basic_types.h vmblock-only/include/vm_basic_types.h
--- vmblock-only.orig/include/vm_basic_types.h	2007-11-30 04:02:51.000000000 +0100
+++ vmblock-only/include/vm_basic_types.h	2008-03-10 15:46:58.000000000 +0100
@@ -27,6 +27,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
@@ -177,17 +187,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
@@ -299,9 +317,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;
@@ -342,8 +369,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)
 
diff -Nur vmblock-only.orig/Makefile.kernel vmblock-only/Makefile.kernel
--- vmblock-only.orig/Makefile.kernel	2007-11-30 04:02:51.000000000 +0100
+++ vmblock-only/Makefile.kernel	2008-03-10 15:20:17.000000000 +0100
@@ -47,7 +47,14 @@
 EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/setnice.c, -DVMW_HAVE_SET_USER_NICE, )
 EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/epoll.c,   -DVMW_HAVE_EPOLL, )
 EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/skas1.c,   -DVMW_SKAS_MMAP, )
-EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/cachecreate.c, -DVMW_KMEMCR_HAS_DTOR, )
+
+####
+#### This somehow doesn't work on my system. Although I'm using 2.6.24.3, VMW_KMEMCR_HAS_DTOR is
+#### defined during compilation and therefore fails, so commenting it out was the easiest way.
+####
+#### by Alexander Griesser <work@tuxx-home.at>, 2008-03-10
+#EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/cachecreate.c, -DVMW_KMEMCR_HAS_DTOR, )
+####
 
 # Note: These tests are inverted.
 EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/getsb1.c, ,   -DVMW_GETSB_2618)

