diff --git a/package/gluon-scheduled-domain-switch/luasrc/lib/gluon/scheduled-domain-switch/switch-domain b/package/gluon-scheduled-domain-switch/luasrc/lib/gluon/scheduled-domain-switch/switch-domain
index 31fcea363752db6feb17c7d63d1369b925a3a8e7..1d7e58984568f10d7292520bc764fe8b8889baa2 100755
--- a/package/gluon-scheduled-domain-switch/luasrc/lib/gluon/scheduled-domain-switch/switch-domain
+++ b/package/gluon-scheduled-domain-switch/luasrc/lib/gluon/scheduled-domain-switch/switch-domain
@@ -60,8 +60,5 @@ if not switch_after_min_reached() and not switch_time_passed() then
 	os.exit(0)
 end
 
-uci:set("gluon", "core", "domain", target_domain)
-uci:commit("gluon")
-
-os.execute("gluon-reconfigure")
-os.execute("reboot")
+local cmd = {[0] = 'gluon-switch-domain', target_domain}
+unistd.execp(cmd[0], cmd)