diff --git a/html/app.js b/html/app.js
index 0a50b322..75152fbb 100644
--- a/html/app.js
+++ b/html/app.js
@@ -1614,7 +1614,7 @@ var CONF_OVERWRITE=[
/^ip\b/,/^gw\b/,/^netmask\b/,/^hostname\b/,
/^syslog\s+ip\b/,/^syslog\s+port\b/,/^passwd\b/,
/^vlan\s+\d{1,4}\s+mgmt$/,/^vlan\s+\d{1,4}(?!\s+mgmt\b)/,
- /^pvid\s+\d{1,2}\b/,/^ingress\b/,
+ /^pvid\s+\d{1,2}\b/,
/^port\s+\d{1,2}(?!\s+name\b)/,/^port\s+\d{1,2}\s+name\b/,
/^eee\s+\d{1,2}\b/,/^eee\b/,/^mirror\b/,
/^lag\s+\d\b/,/^laghash\s+\d\b/,/^isolate\s+\d{1,2}\b/,
@@ -1635,6 +1635,21 @@ function mergeConf(base,texts){
if((m=line.match(/^lag (\d) d$/))){drop(new RegExp("^lag(hash)? "+m[1]+"( |$)"));return;}
if(line==="mirror off"){drop(/^mirror /);return;}
if(!isConfCmd(line))return;
+ if((m=line.match(/^ingress (.+)$/))){
+ if(/^[tua]$/.test(m[1])){drop(/^ingress /);conf.push(line);return;}
+ var ports={},order=[],last=-1;
+ conf.forEach(function(c,i){if(/^ingress [tua]$/.test(c))last=i;});
+ conf.forEach(function(c,i){
+ var cm=c.match(/^ingress (.+)$/);
+ if(!cm||/^[tua]$/.test(cm[1])||i