diff --git a/package/button-hotplug/Makefile b/package/button-hotplug/Makefile
index 35791420f3107ff8c189abd78a8ff616ea466560..68f42210e12c650bb93b7c5c794b872a033de4a4 100644
--- a/package/button-hotplug/Makefile
+++ b/package/button-hotplug/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2008 OpenWrt.org
+# Copyright (C) 2008-2010 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=button-hotplug
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 include $(INCLUDE_DIR)/package.mk
 
diff --git a/package/button-hotplug/src/button-hotplug.c b/package/button-hotplug/src/button-hotplug.c
index 0259a3fbcd874dd664924e66b8886a2d84d8e3f5..4a8c4a88ed4e0a91b040c204b2636a919d8bc18d 100644
--- a/package/button-hotplug/src/button-hotplug.c
+++ b/package/button-hotplug/src/button-hotplug.c
@@ -21,10 +21,10 @@
 #include <linux/workqueue.h>
 #include <linux/skbuff.h>
 #include <linux/netlink.h>
-#include <net/sock.h>
+#include <linux/kobject.h>
 
 #define DRV_NAME	"button-hotplug"
-#define DRV_VERSION	"0.4.0"
+#define DRV_VERSION	"0.4.1"
 #define DRV_DESC	"Button Hotplug driver"
 
 #define BH_SKB_SIZE	2048
@@ -64,7 +64,6 @@ struct bh_map {
 	const char	*name;
 };
 
-extern struct sock *uevent_sock;
 extern u64 uevent_next_seqnum(void);
 
 #define BH_MAP(_code, _name)		\
@@ -160,9 +159,6 @@ static void button_hotplug_work(struct work_struct *work)
 	struct bh_event *event = container_of(work, struct bh_event, work);
 	int ret = 0;
 
-	if (!uevent_sock)
-		goto out_free_event;
-
 	event->skb = alloc_skb(BH_SKB_SIZE, GFP_KERNEL);
 	if (!event->skb)
 		goto out_free_event;
@@ -176,7 +172,7 @@ static void button_hotplug_work(struct work_struct *work)
 		goto out_free_skb;
 
 	NETLINK_CB(event->skb).dst_group = 1;
-	netlink_broadcast(uevent_sock, event->skb, 0, 1, GFP_KERNEL);
+	broadcast_uevent(event->skb, 0, 1, GFP_KERNEL);
 
  out_free_skb:
 	if (ret) {