--- uif	2012-07-10 15:47:53.000000000 +0100
+++ uif6	2012-07-10 16:55:06.000000000 +0100
@@ -992,9 +992,9 @@
 			my $type;
 			foreach $type (@{$$rule{'ICMP'}}) {
 				if ($type eq 'all') {
-					push (@protocol, "-p $not icmp");
+					push (@protocol, "-p $not icmpv6");
 				} else {
-					push (@protocol, "-p icmp -m icmp --icmp-type $not $type");
+					push (@protocol, "-p icmpv6 -m icmpv6 --icmpv6-type $not $type");
 				}
 			}
 		}
@@ -1219,7 +1219,7 @@
 	}
 
 	my $entry;
-	foreach $entry (qw(mangle filter nat)) {
+	foreach $entry (qw(mangle filter)) {
 		my $chain;
 		push (@$Listing, "*$entry");
 		if ($entry eq 'filter') {
@@ -1243,7 +1243,7 @@
 			push (@$Listing, "-A STATENOTNEW -m limit --limit $$Sysconfig{'LogLimit'} --limit-burst $$Sysconfig{'LogBurst'} -j LOG --log-prefix \"$$Sysconfig{'LogPrefix'} STATE NOT NEW: \"  --log-level $$Sysconfig{'LogLevel'} --log-tcp-options --log-ip-options");
 			push (@$Listing, "-A STATENOTNEW -j DROP");
 			push (@$Listing, "-A MYREJECT -m tcp -p tcp -j REJECT --reject-with tcp-reset");
-			push (@$Listing, "-A MYREJECT -j REJECT --reject-with icmp-port-unreachable");
+			push (@$Listing, "-A MYREJECT -j REJECT --reject-with icmp6-port-unreachable");
 		} elsif ($entry eq 'nat') {
 			$table=\@nat;
 			$chains=\%nat;
@@ -1295,7 +1295,7 @@
 
 	@$Listing=map { $_."\n" } @$Listing;
 
-	open (IPT, '/sbin/iptables-save|');
+	open (IPT, '/sbin/ip6tables-save|');
 	@oldrules = <IPT>;
 	close (IPT);
 
@@ -1304,7 +1304,7 @@
 	$SIG{'QUIT'} = 'signalCatcher';
 	$SIG{'TERM'} = 'signalCatcher';
 
-	open (IPT, '|/sbin/iptables-restore');
+	open (IPT, '|/sbin/ip6tables-restore');
 	print IPT @$Listing;
 	close (IPT);
 	$error=$?;
@@ -1313,7 +1313,7 @@
 		sleep $timeout;
 	}
 	if ($timeout || $SignalCatched || $error) {
-		open (IPT, '|/sbin/iptables-restore');
+		open (IPT, '|/sbin/ip6tables-restore');
 		print IPT @oldrules;
 		close (IPT);
 		if ($SignalCatched) {
