diff --git a/aur/dkms-8192cu/PKGBUILD b/aur/dkms-8192cu/PKGBUILD
index 515e8c516..bc98daa5f 100644
--- a/aur/dkms-8192cu/PKGBUILD
+++ b/aur/dkms-8192cu/PKGBUILD
@@ -2,10 +2,11 @@
 
 #alarm: moonman
 #    -dkms.conf: change ARCH=i386 to ARCH=arm
+#    -add missing ids for Netgear WNA1000N & D-Link Alpha (taken from R-Pi kernel)
 
 pkgname=dkms-8192cu
 pkgver=v3.4.4_4749
-pkgrel=7
+pkgrel=8
 pkgdesc="Driver for Realtek RTL8188CUS (8188C, 8192C) chipset wireless cards"
 arch=('arm')
 url="http://www.realtek.com.tw/"
@@ -19,15 +20,16 @@ source=("https://www.dropbox.com/s/3rrxrg55hmnzr1l/$_pkgname-$pkgver.tar.bz2"
 		"dkms.conf"
 		"blacklist-dkms-8192cu.conf"
 		"use_kthread_run.patch"
-		"use_kthread_run_v2.patch" )
+		"use_kthread_run_v2.patch"
+		"add_missing_ids_netgear_dlink.patch")
+
 		
 md5sums=('f4291ba24e9ff3408c26606ba9400152'
 		 '9de2f7a7788689e2bf7680950b4451d9'
 		 '5f2d28bf3839447bfe762416a89e1a21'
 		 '28acff14c65b67e7ec246173cae113c0'
-		 '7b22f83c62456e4b8310e21b56bb4c2f')
-
-
+		 '7b22f83c62456e4b8310e21b56bb4c2f'
+		 'a595c7c7ed240e50e8001094c4488a5a')
 
 package() {
 	
@@ -41,6 +43,7 @@ package() {
  	cd "${srcdir}/${_pkgname}-${pkgver}/"
  	
  	patch -p1 -i "$srcdir/use_kthread_run_v2.patch"
+	patch -Np1 -i "$srcdir/add_missing_ids_netgear_dlink.patch"
  	
  	for d in `find . -type d`
  	do
diff --git a/aur/dkms-8192cu/add_missing_ids_netgear_dlink.patch b/aur/dkms-8192cu/add_missing_ids_netgear_dlink.patch
new file mode 100644
index 000000000..31e25366f
--- /dev/null
+++ b/aur/dkms-8192cu/add_missing_ids_netgear_dlink.patch
@@ -0,0 +1,19 @@
+diff -ruN a/os_dep/linux/usb_intf.c b/os_dep/linux/usb_intf.c
+--- a/os_dep/linux/usb_intf.c	2012-07-30 06:51:05.000000000 -0600
++++ b/os_dep/linux/usb_intf.c	2013-06-03 00:10:00.000000000 -0600
+@@ -114,6 +114,7 @@
+ 	{USB_DEVICE(0x4856, 0x0091)},//NetweeN - Feixun
+ 	{USB_DEVICE(0x2019, 0x4902)},//Planex - Etop
+ 	{USB_DEVICE(0x2019, 0xAB2E)},//SW-WF02-AD15 -Abocom
++	{USB_DEVICE(0x0846, 0x9041)},//Netgear
+ 
+ 	/****** 8188 RU ********/
+ 	{USB_DEVICE(0x0BDA, 0x317F)},//Netcore,Netcore
+@@ -137,6 +138,7 @@
+ 	{USB_DEVICE(0x2001, 0x3307)},//D-Link - Cameo
+ 	{USB_DEVICE(0x2001, 0x330A)},//D-Link - Alpha
+ 	{USB_DEVICE(0x2001, 0x3309)},//D-Link - Alpha
++	{USB_DEVICE(0x2001, 0x330D)},//D-Link - Alpha(?)
+ 	{USB_DEVICE(0x0586, 0x341F)},//Zyxel - Abocom
+ 	{USB_DEVICE(0x7392, 0x7822)},//Edimax - Edimax
+ 	{USB_DEVICE(0x2019, 0xAB2B)},//Planex - Abocom
diff --git a/aur/dkms-8192cu/use_kthread_run.patch b/aur/dkms-8192cu/use_kthread_run.patch
deleted file mode 100644
index a40a21421..000000000
--- a/aur/dkms-8192cu/use_kthread_run.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-diff -ur _/core/rtw_mp.c rt8192cu-master/core/rtw_mp.c
---- _/core/rtw_mp.c	2012-07-09 10:32:18.000000000 +0200
-+++ rt8192cu-master/core/rtw_mp.c	2012-12-21 03:13:45.358137142 +0100
-@@ -1140,8 +1140,7 @@
- 	_rtw_memset(ptr, payload, pkt_end - ptr);
- 
- 	//3 6. start thread
--	pmp_priv->tx.PktTxThread = kernel_thread(mp_xmit_packet_thread, pmp_priv, CLONE_FS|CLONE_FILES);
--	if(pmp_priv->tx.PktTxThread < 0)
-+	if(!start_kthread(&pmp_priv->tx.PktTxThread, mp_xmit_packet_thread, pmp_priv, "8192cu-mp-xmit"))
- 		DBG_871X("Create PktTx Thread Fail !!!!!\n");
- 
- }
-diff -ur _/include/osdep_service.h rt8192cu-master/include/osdep_service.h
---- _/include/osdep_service.h	2012-07-09 10:32:18.000000000 +0200
-+++ rt8192cu-master/include/osdep_service.h	2012-12-21 03:09:05.314123589 +0100
-@@ -100,6 +100,9 @@
- 	#include <linux/pci.h>
- #endif
- 
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0))
-+	#include <linux/kthread.h>
-+#endif
- 	
- #ifdef CONFIG_USB_HCI
- 	typedef struct urb *  PURB;
-@@ -133,8 +136,12 @@
- 	//typedef u32	_irqL;
- 	typedef unsigned long _irqL;
- 	typedef	struct	net_device * _nic_hdl;
--	
-+
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0))
- 	typedef pid_t		_thread_hdl_;
-+#else
-+	typedef struct task_struct * _thread_hdl_;
-+#endif
- 	typedef int		thread_return;
- 	typedef void*	thread_context;
- 
-@@ -827,4 +834,8 @@
- 
- #endif
- 
-+#ifdef PLATFORM_LINUX
-+extern int start_kthread(_thread_hdl_ *t_hdl, int (*threadfn)(void *data),
-+			 void *data, const char *name);
-+#endif
- 
-diff -ur _/os_dep/linux/os_intfs.c rt8192cu-master/os_dep/linux/os_intfs.c
---- _/os_dep/linux/os_intfs.c	2012-12-21 03:17:25.618147802 +0100
-+++ rt8192cu-master/os_dep/linux/os_intfs.c	2012-12-21 03:14:14.554138555 +0100
-@@ -797,27 +797,22 @@
- 	RT_TRACE(_module_os_intfs_c_,_drv_info_,("+rtw_start_drv_threads\n"));
- 
- #ifdef CONFIG_SDIO_HCI
--	padapter->xmitThread = kernel_thread(rtw_xmit_thread, padapter, CLONE_FS|CLONE_FILES);
--	if(padapter->xmitThread < 0)
-+	if(!start_kthread(&padapter->xmitThread, rtw_xmit_thread, padapter, "8192cu-xmit"))
- 		_status = _FAIL;
- #endif
- 
- #ifdef CONFIG_RECV_THREAD_MODE
--	padapter->recvThread = kernel_thread(recv_thread, padapter, CLONE_FS|CLONE_FILES);
--	if(padapter->recvThread < 0)
-+	if(!start_kthread(&padapter->recvThread, recv_thread, padapter, "8192cu-recv"))
- 		_status = _FAIL;	
- #endif
- 
--	padapter->cmdThread = kernel_thread(rtw_cmd_thread, padapter, CLONE_FS|CLONE_FILES);
--	if(padapter->cmdThread < 0)
-+	if(!start_kthread(&padapter->cmdThread, rtw_cmd_thread, padapter, "8192cu-cmd"))
- 		_status = _FAIL;
- 	else
- 		_rtw_down_sema(&padapter->cmdpriv.terminate_cmdthread_sema); //wait for cmd_thread to run
--		
- 
- #ifdef CONFIG_EVENT_THREAD_MODE
--	padapter->evtThread = kernel_thread(event_thread, padapter, CLONE_FS|CLONE_FILES);
--	if(padapter->evtThread < 0)
-+	if(!start_kthread(&padapter->evtThread, event_thread, padapter, "8192cu-evt"))
- 		_status = _FAIL;		
- #endif
- 
-diff -ur _/os_dep/osdep_service.c rt8192cu-master/os_dep/osdep_service.c
---- _/os_dep/osdep_service.c	2012-12-21 03:17:25.618147802 +0100
-+++ rt8192cu-master/os_dep/osdep_service.c	2012-12-21 03:08:30.330121896 +0100
-@@ -1553,3 +1553,19 @@
- #endif
- }
- 
-+#ifdef PLATFORM_LINUX
-+int start_kthread(_thread_hdl_ *t_hdl, int (*threadfn)(void *data),
-+		  void *data, const char *name)
-+{
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0))
-+	*t_hdl = kernel_thread(threadfn, data, CLONE_FS|CLONE_FILES);
-+	if(*t_hdl < 0)
-+#else
-+	*t_hdl = kthread_run(threadfn, data, name);
-+	if(IS_ERR(*t_hdl))
-+#endif
-+		return 0;
-+	return -1;
-+}
-+#endif
-+