diff -Nur vmxnet-only.old/vmxnet.c vmxnet-only/vmxnet.c
--- vmxnet-only.old/vmxnet.c	2007-03-30 19:53:58.000000000 +0200
+++ vmxnet-only/vmxnet.c	2007-06-29 14:08:37.000000000 +0200
@@ -8,7 +8,14 @@
 
 #include "driver-config.h"
 
+/* <linux/config.h> has been removed in favour of autoconf.h in
+ * the 2.6 series of the linux kernel
+ * 2007-06-29 by Alexander Griesser <vmware@tuxx-home.at>
+ */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 #include <linux/config.h>
+#endif
+
 #include <linux/module.h>
 
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 9)
@@ -53,6 +60,18 @@
 #include "ethtool_compat.h"
 #endif
 
+/* With linux 2.6.19, CHECKSUM_HW was split into CHECKSUM_COMPLETE
+ * and CHECKSUM_PARTIAL
+ * 2007-06-29 by Alexander Griesser <vmware@tuxx-home.at>
+ */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19)
+  #define CHECK_IP_SUMMED(n) \
+    (((n) == CHECKSUM_COMPLETE) || ((n) == CHECKSUM_PARTIAL))
+#else
+  #define CHECK_IP_SUMMED(n) ((n) == CHECKSUM_HW)
+#endif
+
+
 static int vmxnet_debug = 1;
 
 #define VMXNET_WATCHDOG_TIMEOUT (5 * HZ) 
@@ -937,12 +956,12 @@
 		                               tcpLen,
 		                               IPPROTO_TCP,
 		                               0);
-         skb->ip_summed = CHECKSUM_HW;
+         skb->ip_summed = CHECKSUM_UNNECESSARY;
       } 
    } 
 #endif
 
-   if (skb->ip_summed == CHECKSUM_HW) {
+   if (CHECK_IP_SUMMED(skb->ip_summed)) {
       xre->flags |= VMXNET2_TX_HW_XSUM;
    } else {
       xre->flags &= ~VMXNET2_TX_HW_XSUM;

