diff --git a/package/gluon-core/files/lib/gluon/upgrade/core/initial/020-wireless b/package/gluon-core/files/lib/gluon/upgrade/core/initial/020-wireless
index 0196b9519787ccd4b8b3ff7aa01ad6049bbac148..bf4af393d04811ad9b057c5aaee20fcc4ebbe3c9 100755
--- a/package/gluon-core/files/lib/gluon/upgrade/core/initial/020-wireless
+++ b/package/gluon-core/files/lib/gluon/upgrade/core/initial/020-wireless
@@ -1,14 +1,7 @@
-#!/bin/sh
+#!/usr/bin/lua
 
-. /lib/functions.sh
+local uci = require('luci.model.uci').cursor()
 
-config_load wireless
-
-delete_iface() {
-	local iface="$1"
-
-	uci_remove wireless "$iface"
-}
-
-config_foreach delete_iface 'wifi-iface'
-uci_commit wireless
+uci:delete_all('wireless', 'wifi-iface')
+uci:save('wireless')
+uci:commit('wireless')