diff -Nur vmhgfs-only.orig/driver-config.h vmhgfs-only/driver-config.h
--- vmhgfs-only.orig/driver-config.h	2008-05-09 05:37:38.000000000 +0200
+++ vmhgfs-only/driver-config.h	2008-07-23 17:52:36.000000000 +0200
@@ -21,6 +21,23 @@
 #include <linux/autoconf.h>
 #include "compat_version.h"
 
+/*
+ * I still haven't figured out why the automagic checks in Makefile.kernel
+ * don't work. They call the script vm_check_build which isn't available
+ * on any of my systems so `make` is unable to find out whether this features
+ * need to be included or not.
+ *
+ * A simple workaround is to rely on the kernel configuration as shown below.
+ * If CONFIG_EPOLL is set, we have EPOLL set, basta.
+ *
+ * by Alexander Griesser <work@tuxx-home.at>, 2008-03-14
+ */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
+#ifdef CONFIG_EPOLL
+#define VMW_HAVE_EPOLL 1
+#endif
+#endif
+
 /* We rely on Kernel Module support.  Check here. */
 #ifndef CONFIG_MODULES
 #error "No Module support in this kernel.  Please configure with CONFIG_MODULES"
@@ -45,6 +62,18 @@
 #endif
 #endif
 
+/*
+ * Force the uintptr_t definition to come from linux/types.h instead of
+ * vm_basic_types.h
+ *
+ * Backported from open-vm-tools
+ * by Alexander Griesser <work@tuxx-home.at>, 2008-04-27
+ */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
+#   include <linux/types.h>
+#   define _STDINT_H 1
+#endif
+
 #ifndef __KERNEL__
 #define __KERNEL__
 #endif
diff -Nur vmhgfs-only.orig/driver.c vmhgfs-only/driver.c
--- vmhgfs-only.orig/driver.c	2008-05-09 05:37:38.000000000 +0200
+++ vmhgfs-only/driver.c	2008-07-23 18:09:25.000000000 +0200
@@ -54,6 +54,30 @@
 #endif
 
 /*
+ * 2.6.25 removed the iget() function in favour of implementing it on your
+ * own if I understood the patch comment correctly ;)
+ *
+ * by Alexander Griesser <vmware@tuxx-home.at>, 2008-04-22
+ */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)
+struct inode *iget(struct super_block *sb, unsigned long ino)
+{
+  struct inode *inode = iget_locked(sb, ino);
+
+  if (!inode)
+    return ERR_PTR(-ENOMEM);
+
+  if(!(inode->i_state & I_NEW))
+    iget_failed(inode);
+  else
+    unlock_new_inode(inode);
+
+  return inode;
+}
+#endif
+
+
+/*
  * 2.5.x kernels support nanoseconds timestamps.
  */
 
@@ -4130,6 +4154,12 @@
 
 
 /*
+ * HgfsReadInode is not needed on 2.6.25
+ *
+ * by Alexander Griesser <vmware@tuxx-home.at>, 2008-04-22
+ */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
+/*
  *-----------------------------------------------------------------------------
  *
  * HgfsReadInode --
@@ -4157,7 +4187,7 @@
     *     them --hpreg
     */
 }
-
+#endif
 
 /*
  *-----------------------------------------------------------------------------
@@ -4260,8 +4290,15 @@
    /* Optional */
    clear_inode:  HgfsClearInode,
 
+/*
+ * read_inode disappeared from struct super_operations on 2.6.25
+ *
+ * by Alexander Griesser <vmware@tuxx-home.at>, 2008-04-22
+ */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
    /* Mandatory */
    read_inode:   HgfsReadInode,
+#endif
 
    /* Optional */
    put_super:    HgfsPutSuper,
diff -Nur vmhgfs-only.orig/modules.order vmhgfs-only/modules.order
--- vmhgfs-only.orig/modules.order	1970-01-01 01:00:00.000000000 +0100
+++ vmhgfs-only/modules.order	2008-07-23 18:09:28.000000000 +0200
@@ -0,0 +1 @@
+kernel//home/tuxx/tools5.5.7/vmhgfs-only/vmhgfs.ko
diff -Nur vmhgfs-only.orig/vm_basic_types.h vmhgfs-only/vm_basic_types.h
--- vmhgfs-only.orig/vm_basic_types.h	2008-05-09 05:37:38.000000000 +0200
+++ vmhgfs-only/vm_basic_types.h	2008-07-23 17:52:13.000000000 +0200
@@ -23,6 +23,7 @@
 #define INCLUDE_ALLOW_DISTRIBUTE
 #define INCLUDE_ALLOW_VMCORE
 #include "includeCheck.h"
+#include "driver-config.h"
 
 /* STRICT ANSI means the Xserver build and X defines Bool differently. */
 #if !defined(__STRICT_ANSI__) || defined(__FreeBSD__)
