diff -aur ndiswrapper-1.59.old/driver/crt.c ndiswrapper-1.59.new/driver/crt.c
--- ndiswrapper-1.59.old/driver/crt.c	2013-11-28 20:42:35.000000000 +0100
+++ ndiswrapper-1.59.new/driver/crt.c	2014-04-11 20:39:22.384962602 +0200
@@ -467,7 +467,7 @@
 noregparm void WIN_FUNC(_win_srand,1)
 	(UINT seed)
 {
-	net_srandom(seed);
+	prandom_seed((__force u32)(seed));
 }
 
 noregparm int WIN_FUNC(rand,0)
diff -aur ndiswrapper-1.59.old/driver/ntoskernel.h ndiswrapper-1.59.new/driver/ntoskernel.h
--- ndiswrapper-1.59.old/driver/ntoskernel.h	2013-11-28 20:42:36.000000000 +0100
+++ ndiswrapper-1.59.new/driver/ntoskernel.h	2014-04-11 20:44:03.491617236 +0200
@@ -347,7 +347,7 @@
 #define netdev_notifier_info_to_dev(x) ((struct net_device *)(x))
 #endif
 
-#ifdef INIT_COMPLETION
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0)
 static inline void reinit_completion(struct completion *x)
 {
 	INIT_COMPLETION(*x);
@@ -797,9 +797,8 @@
 #define nt_spin_unlock_irqrestore(lock, flags)				\
 do {									\
 	nt_spin_unlock(lock);						\
-	preempt_enable_no_resched();					\
+	preempt_enable();					\
 	local_irq_restore(flags);					\
-	preempt_check_resched();					\
 } while (0)
 
 static inline ULONG SPAN_PAGES(void *ptr, SIZE_T length)

