diff --git a/package/mac80211/Makefile b/package/mac80211/Makefile
index 1ab9dc2534fda50bfbd9ad29189872f010bad622..13727d153a2d3a69448ae11a834ec9abdd62d1de 100644
--- a/package/mac80211/Makefile
+++ b/package/mac80211/Makefile
@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
 PKG_NAME:=mac80211
 
 PKG_VERSION:=2012-02-06
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
 PKG_MD5SUM:=fae71c35ee3f3de6329f2db7aed6d265
 
diff --git a/package/mac80211/patches/607-rt2x00-dont-try-to-destroy-unallocated-workqueue.patch b/package/mac80211/patches/607-rt2x00-dont-try-to-destroy-unallocated-workqueue.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f9d3ca1ad1934b222581ca1d5f030a85d7fcff19
--- /dev/null
+++ b/package/mac80211/patches/607-rt2x00-dont-try-to-destroy-unallocated-workqueue.patch
@@ -0,0 +1,12 @@
+--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
++++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
+@@ -1224,7 +1224,8 @@ void rt2x00lib_remove_dev(struct rt2x00_
+ 		cancel_work_sync(&rt2x00dev->rxdone_work);
+ 		cancel_work_sync(&rt2x00dev->txdone_work);
+ 	}
+-	destroy_workqueue(rt2x00dev->workqueue);
++	if (rt2x00dev->workqueue)
++		destroy_workqueue(rt2x00dev->workqueue);
+ 
+ 	/*
+ 	 * Free the tx status fifo.