diff --git a/modules/luci-base/luasrc/model/firewall.lua b/modules/luci-base/luasrc/model/firewall.lua
index 5573a9b86c..feff0855c4 100644
--- a/modules/luci-base/luasrc/model/firewall.lua
+++ b/modules/luci-base/luasrc/model/firewall.lua
@@ -498,11 +498,13 @@ function forwarding.dest(self)
end
function forwarding.src_zone(self)
- return zone(self:src())
+ local z = zone(self:src())
+ return z.sid and z
end
function forwarding.dest_zone(self)
- return zone(self:dest())
+ local z = zone(self:dest())
+ return z.sid and z
end
diff --git a/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm b/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm
index 2a433b5696..546fd8e85a 100644
--- a/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm
+++ b/modules/luci-base/luasrc/view/cbi/firewall_zoneforwards.htm
@@ -43,11 +43,12 @@
⇒
<% for _, fwd in ipairs(zone:get_forwardings_by("src")) do
fz = fwd:dest_zone()
- empty = false %>
+ if fz then
+ empty = false %>
- <% end %>
+ <% end end %>
<% if empty then %>