diff --git a/src/script/multiap b/src/script/multiap
index 99545456c6ec8e4431eb345f9c72ad2fbc63904c..bdba288222c82c6e84d15a292cf11a78016a4983 100755
--- a/src/script/multiap
+++ b/src/script/multiap
@@ -1498,6 +1498,45 @@ advertise_cce() {
 	hostapd_cli -i $ifname set dpp_configurator_connectivity $enable > /dev/null 2>&1
 }
 
+reset() {
+	teardown_ts() {
+		local section="$1"
+		local vid
+
+		config_get vid "$section" vid
+		[ -n "$vid" ] && ts_sub cleanup "$vid"
+	}
+
+	config_load mapagent
+	config_foreach teardown_ts ap
+
+	/etc/init.d/mapagent stop
+	/etc/init.d/ieee1905 stop
+	/etc/init.d/wifimngr stop
+	wifi down
+	rm /etc/config/wireless
+	wifi config > /dev/null 2>&1
+	rm /etc/config/mapagent
+	cp /rom/etc/config/mapagent /etc/config/mapagent
+	cp /rom/etc/config/ieee1905 /etc/config/ieee1905
+	. /rom/etc/uci-defaults/30-set-ieee1905-al-macaddr
+	uci commit ieee1905
+
+	if [ -x /usr/sbin/mapcontroller ]; then
+		/etc/init.d/mapcontroller stop
+		rm /etc/config/mapcontroller
+		cp /rom/etc/config/mapcontroller /etc/config/mapcontroller
+		. /rom/etc/uci-defaults/99-mapcntlr > /dev/null 2>&1
+		/etc/init.d/mapcontroller start
+	fi
+
+	setup_conf > /dev/null 2>&1
+	/etc/init.d/ieee1905 start
+	/etc/init.d/wifimngr start
+	wireless_reload
+	/etc/init.d/mapagent start > /dev/null 2>&1
+}
+
 
 func=$1
 shift
@@ -1540,6 +1579,7 @@ case "$func" in
 	set_ap_ssid) set_ap_ssid $@;;
 	set_ap_psk) set_ap_psk $@;;
 	config_reorder) config_reorder $@;;
+	reset) reset $@;;
 	--help|help) usage;;
 	*) usage; exit 1;;
 esac