diff --git a/package/gluon-config-mode-mesh-vpn/luasrc/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua b/package/gluon-config-mode-mesh-vpn/luasrc/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua
index 98f27048aae7217dfb4313ca3dae5920b8eec256..0fd6432be2b2b7d18e1dd524e2ee41da9ed4ae52 100644
--- a/package/gluon-config-mode-mesh-vpn/luasrc/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua
+++ b/package/gluon-config-mode-mesh-vpn/luasrc/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua
@@ -41,14 +41,25 @@ return function(form, uci)
 		uci:set("simple-tc", "mesh_vpn", "interface")
 		uci:set("simple-tc", "mesh_vpn", "enabled", data)
 		uci:set("simple-tc", "mesh_vpn", "ifname", "mesh-vpn")
+		if not data and has_tunneldigger then
+			uci:delete("tunneldigger", "mesh_vpn", "limit_bw_down")
+		end
 	end
 
 	o = s:option(Value, "limit_ingress", pkg_i18n.translate("Downstream (kbit/s)"))
 	o:depends(limit, true)
-	o.default = uci:get("simple-tc", "mesh_vpn", "limit_ingress")
+	if has_tunneldigger then
+		o.default = uci:get("tunneldigger", "mesh_vpn", "limit_bw_down")
+	else
+		o.default = uci:get("simple-tc", "mesh_vpn", "limit_ingress")
+	end
 	o.datatype = "uinteger"
 	function o:write(data)
-		uci:set("simple-tc", "mesh_vpn", "limit_ingress", data)
+		if has_tunneldigger then
+			uci:set("tunneldigger", "mesh_vpn", "limit_bw_down", data)
+		else
+			uci:set("simple-tc", "mesh_vpn", "limit_ingress", data)
+		end
 	end
 
 	o = s:option(Value, "limit_egress", pkg_i18n.translate("Upstream (kbit/s)"))
diff --git a/package/gluon-mesh-vpn-core/luasrc/lib/gluon/upgrade/500-mesh-vpn b/package/gluon-mesh-vpn-core/luasrc/lib/gluon/upgrade/500-mesh-vpn
index 7804503023efd86583bbdb8d01c9b6dbbc663394..007645888704da5e982165db4c4ec263a471b0a2 100755
--- a/package/gluon-mesh-vpn-core/luasrc/lib/gluon/upgrade/500-mesh-vpn
+++ b/package/gluon-mesh-vpn-core/luasrc/lib/gluon/upgrade/500-mesh-vpn
@@ -79,6 +79,11 @@ uci:save('fastd')
 
 if has_tunneldigger then
 	uci:set('tunneldigger', 'mesh_vpn', 'enabled', enabled)
+	if site.mesh_vpn.bandwidth_limit.enabled(false) then
+		uci:set('tunneldigger', 'mesh_vpn', 'limit_bw_down', site.mesh_vpn.bandwidth_limit.ingress())
+		uci:set('simple-tc', 'mesh_vpn', 'limit_ingress', 0)
+		uci:save('simple-tc')
+	end
 else
 	uci:delete('tunneldigger', 'mesh_vpn')
 end