diff -u -r source802//vmnet-only/filter.c source/vmnet-only/filter.c
--- source802//vmnet-only/filter.c	2012-01-18 23:22:02.000000000 +0100
+++ source/vmnet-only/filter.c	2012-01-26 18:07:13.000000000 +0100
@@ -40,6 +40,10 @@
 #include "vnetInt.h"
 #include "vmnetInt.h"
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
+#include <linux/export.h>
+#endif
+
 // VNet_FilterLogPacket.action for dropped packets
 #define VNET_FILTER_ACTION_DRP         (1)
 #define VNET_FILTER_ACTION_DRP_SHORT   (2)
diff -u -r source802//vmnet-only/netif.c source/vmnet-only/netif.c
--- source802//vmnet-only/netif.c	2012-01-18 23:22:02.000000000 +0100
+++ source/vmnet-only/netif.c	2012-01-26 13:41:18.000000000 +0100
@@ -62,7 +62,9 @@
 static int  VNetNetifStartXmit(struct sk_buff *skb, struct net_device *dev);
 static struct net_device_stats *VNetNetifGetStats(struct net_device *dev);
 static int  VNetNetifSetMAC(struct net_device *dev, void *addr);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 42, 0) || (LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0) && LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0))
 static void VNetNetifSetMulticast(struct net_device *dev);
+#endif
 #if 0
 static void VNetNetifTxTimeout(struct net_device *dev);
 #endif
@@ -131,7 +133,9 @@
       .ndo_stop = VNetNetifClose,
       .ndo_get_stats = VNetNetifGetStats,
       .ndo_set_mac_address = VNetNetifSetMAC,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 42, 0) || (LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0) && LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0))
       .ndo_set_multicast_list = VNetNetifSetMulticast,
+#endif
       /*
        * We cannot stuck... If someone will report problems under
        * low memory conditions or some such, we should enable it.
@@ -611,12 +615,12 @@
  *
  *----------------------------------------------------------------------
  */
-
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 42, 0) || (LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0) && LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0))
 void
 VNetNetifSetMulticast(struct net_device *dev) // IN: unused
 {
 }
-
+#endif
 
 /*
  *----------------------------------------------------------------------
diff -u -r source802//vmnet-only/userif.c source/vmnet-only/userif.c
--- source802//vmnet-only/userif.c	2012-01-18 23:22:02.000000000 +0100
+++ source/vmnet-only/userif.c	2012-01-26 13:28:48.000000000 +0100
@@ -517,10 +517,18 @@
 	 unsigned int tmpCsum;
 	 const void *vaddr;
 
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 42, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0)) || LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
+         vaddr = kmap(skb_frag_page(frag));
+#else
 	 vaddr = kmap(frag->page);
+#endif
 	 tmpCsum = csum_and_copy_to_user(vaddr + frag->page_offset,
 					 curr, frag->size, 0, &err);
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 42, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0)) || LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
+         kunmap(skb_frag_page(frag));
+#else
 	 kunmap(frag->page);
+#endif
 	 if (err) {
 	    return err;
 	 }
