diff --git a/src/usr/local/www/firewall_rules.php b/src/usr/local/www/firewall_rules.php index f5d4d5d9ad..c2870eecd3 100644 --- a/src/usr/local/www/firewall_rules.php +++ b/src/usr/local/www/firewall_rules.php @@ -221,6 +221,7 @@ if (isset($_POST['del_x'])) { if (is_array($_POST['rule']) && count($_POST['rule'])) { $a_separators = &$config['filter']['separator'][strtolower($if)]; + $num_deleted = 0; foreach ($_POST['rule'] as $rulei) { delete_nat_association($a_filter[$rulei]['associated-rule-id']); @@ -228,9 +229,11 @@ if (isset($_POST['del_x'])) { $deleted = true; // Update the separators - $ridx = ifridx($if, $rulei); // get rule index within interface + // As rules are deleted, $ridx has to be decremented or separator position will break + $ridx = ifridx($if, $rulei) - $num_deleted; // get rule index within interface $mvnrows = -1; move_separators($a_separators, $ridx, $mvnrows); + $num_deleted++; } if ($deleted) {