diff --git a/package/gluon-config-mode/files/usr/lib/lua/luci/model/cbi/gluon-config-mode/wizard.lua b/package/gluon-config-mode/files/usr/lib/lua/luci/model/cbi/gluon-config-mode/wizard.lua
index e3d6afbd38ca5a08ba3d5d92998f9aba0b771ca0..517cf2b7baed66c0d7e21f026435cab79d0a9115 100644
--- a/package/gluon-config-mode/files/usr/lib/lua/luci/model/cbi/gluon-config-mode/wizard.lua
+++ b/package/gluon-config-mode/files/usr/lib/lua/luci/model/cbi/gluon-config-mode/wizard.lua
@@ -69,12 +69,22 @@ function f.handle(self, state, data)
     uci:save("autoupdater")
     uci:commit("autoupdater")
 
-    uci:set("gluon-simple-tc", meshvpn_name, "interface")
-    uci:set("gluon-simple-tc", meshvpn_name, "enabled", data._limit_enabled)
-    uci:set("gluon-simple-tc", meshvpn_name, "ifname", "mesh-vpn")
-    uci:set("gluon-simple-tc", meshvpn_name, "limit_ingress", data._limit_ingress)
-    uci:set("gluon-simple-tc", meshvpn_name, "limit_egress", data._limit_egress)
-    uci:commit("gluon-simple-tc")
+    -- checks for nil needed due to o:depends(...)
+    if data._limit_enabled ~= nil then
+      uci:set("gluon-simple-tc", meshvpn_name, "interface")
+      uci:set("gluon-simple-tc", meshvpn_name, "enabled", data._limit_enabled)
+      uci:set("gluon-simple-tc", meshvpn_name, "ifname", "mesh-vpn")
+
+      if data._limit_ingress ~= nil then
+        uci:set("gluon-simple-tc", meshvpn_name, "limit_ingress", data._limit_ingress)
+      end
+
+      if data._limit_egress ~= nil then
+        uci:set("gluon-simple-tc", meshvpn_name, "limit_egress", data._limit_egress)
+      end
+
+      uci:commit("gluon-simple-tc")
+    end
 
     uci:set("fastd", meshvpn_name, "enabled", data._meshvpn)
     uci:save("fastd")