diff --git a/package/gluon-core/files/lib/gluon/upgrade/core/initial/011-gluon-network b/package/gluon-core/files/lib/gluon/upgrade/core/initial/011-gluon-network
index 851a8dc4d0a1f99b25336d199da647ceb4a7fbf7..916a55fef4354895711301e795532a4e7e67c55d 100755
--- a/package/gluon-core/files/lib/gluon/upgrade/core/initial/011-gluon-network
+++ b/package/gluon-core/files/lib/gluon/upgrade/core/initial/011-gluon-network
@@ -1,12 +1,7 @@
 #!/usr/bin/lua
 
 local sysconfig = require 'gluon.sysconfig'
-local platform = require 'gluon.platform'
-
 local uci = require('luci.model.uci').cursor()
-local util = require 'luci.util'
-
-local nixio = require 'nixio'
 
 
 uci:delete('network', 'lan')
@@ -20,17 +15,5 @@ uci:section('network', 'interface', 'wan',
 	    }
 )
 
-
-if platform.match('ar71xx', 'generic', {'tl-wr1043nd', 'tl-wdr3600', 'tl-wdr4300'}) then
-   -- fix up duplicate mac addresses
-   local m1, m2, m3, m4, m5, m6 = string.match(sysconfig.primary_mac, '(%x%x):(%x%x):(%x%x):(%x%x):(%x%x):(%x%x)')
-   m1 = nixio.bit.bor(tonumber(m1, 16), 0x02)
-   m4 = (tonumber(m4, 16)+1) % 0x100
-   m6 = (tonumber(m6, 16)+1) % 0x100
-   local wanaddr = string.format('%02x:%s:%s:%02x:%s:%02x', m1, m2, m3, m4, m5, m6)
-
-   uci:set('network', 'wan', 'macaddr', wanaddr)
-end
-
 uci:save('network')
 uci:commit('network')
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/010-wan b/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/010-wan
new file mode 100755
index 0000000000000000000000000000000000000000..3b6611cc6c224aadd984a8d5e7d00f4f9cd40fd9
--- /dev/null
+++ b/package/gluon-mesh-batman-adv/files/lib/gluon/upgrade/mesh-batman-adv/invariant/010-wan
@@ -0,0 +1,20 @@
+#!/usr/bin/lua
+
+local nixio = require 'nixio'
+local sysconfig = require 'gluon.sysconfig'
+local uci = require('luci.model.uci').cursor()
+
+
+if sysconfig.wan_ifname:match('%.') and not uci:get('network', 'wan', 'macaddr') then
+  -- fix up duplicate mac addresses
+  local m1, m2, m3, m4, m5, m6 = string.match(sysconfig.primary_mac, '(%x%x):(%x%x):(%x%x):(%x%x):(%x%x):(%x%x)')
+  m1 = nixio.bit.bor(tonumber(m1, 16), 0x02)
+  m4 = (tonumber(m4, 16)+1) % 0x100
+  m6 = (tonumber(m6, 16)+1) % 0x100
+  local wanaddr = string.format('%02x:%s:%s:%02x:%s:%02x', m1, m2, m3, m4, m5, m6)
+
+  uci:set('network', 'wan', 'macaddr', wanaddr)
+end
+
+uci:save('network')
+uci:commit('network')