diff --git a/package/gluon-private-wifi/Makefile b/package/gluon-private-wifi/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..622334b52be3f8b49188d17c1a4c774099b89071
--- /dev/null
+++ b/package/gluon-private-wifi/Makefile
@@ -0,0 +1,13 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=gluon-private-wifi
+PKG_VERSION:=1
+
+include ../gluon.mk
+
+define Package/gluon-private-wifi
+  TITLE:=Provides a virtual access point for the nodes WAN network 
+  DEPENDS:=+gluon-core
+endef
+
+$(eval $(call BuildPackageGluon,gluon-private-wifi))
diff --git a/package/gluon-private-wifi/luasrc/lib/gluon/upgrade/325-gluon-private-wifi b/package/gluon-private-wifi/luasrc/lib/gluon/upgrade/325-gluon-private-wifi
new file mode 100755
index 0000000000000000000000000000000000000000..2f46267b06d62961b74bb4770c6a232a581bbb3a
--- /dev/null
+++ b/package/gluon-private-wifi/luasrc/lib/gluon/upgrade/325-gluon-private-wifi
@@ -0,0 +1,18 @@
+#!/usr/bin/lua
+
+local uci = require("simple-uci").cursor()
+local wireless = require 'gluon.wireless'
+
+wireless.foreach_radio(uci, function(radio)
+	local radio_name = radio['.name']
+	local suffix = radio_name:match('^radio(%d+)$')
+	local name   = "wan_" .. radio_name
+
+	if not uci:get('wireless', name, 'device') then
+		return
+	end
+
+	uci:set('wireless', name, 'ifname', suffix and 'wan' .. suffix)
+end)
+
+uci:save('wireless')
diff --git a/package/gluon-web-private-wifi/Makefile b/package/gluon-web-private-wifi/Makefile
index cff13fcb328de5e9ac6d4eb5865fd38f7efdfa35..f016abf44a17d3d26c261bea6c4c224b33f8130d 100644
--- a/package/gluon-web-private-wifi/Makefile
+++ b/package/gluon-web-private-wifi/Makefile
@@ -7,7 +7,7 @@ PKG_RELEASE:=1
 include ../gluon.mk
 
 define Package/gluon-web-private-wifi
-  DEPENDS:=+gluon-web-admin
+  DEPENDS:=+gluon-web-admin +gluon-private-wifi
   TITLE:=UI for activating a private WLAN
 endef