really zero counters
diff --git a/libebtc.c b/libebtc.c
index 03b7bfe..4c702cb 100644
--- a/libebtc.c
+++ b/libebtc.c
@@ -892,6 +892,7 @@
 {
 	struct ebt_u_entries *entries = ebt_to_chain(replace);
 	struct ebt_cntchanges *cc = replace->counterchanges;
+	struct ebt_u_entry *next;
 	int i, j;
 
 	if (!entries) {
@@ -900,7 +901,26 @@
 				cc->type = CNT_ZERO;
 			cc = cc->next;
 		}
+		i = -1;
+		while (1) {
+			i++;
+			if (i < NF_BR_NUMHOOKS && !(replace->valid_hooks & (1 << i)))
+				continue;
+			entries = ebt_nr_to_chain(replace, i);
+			if (!entries) {
+				if (i < NF_BR_NUMHOOKS)
+					ebt_print_bug("i < NF_BR_NUMHOOKS");
+				break;
+			}
+			next = entries->entries;
+			while (next) {
+				next->cnt.bcnt = next->cnt.pcnt = 0;
+				next = next->next;
+			}
+		}
+			
 	} else {
+		next = entries->entries;
 		if (entries->nentries == 0)
 			return;
 
@@ -923,6 +943,10 @@
 			}
 			cc = cc->next;
 		}
+		while (next) {
+			next->cnt.bcnt = next->cnt.pcnt = 0;
+			next = next->next;
+		}
 	}
 }