diff --git a/extensions/ebt_arp.c b/extensions/ebt_arp.c
index bd6bffe..f83146a 100644
--- a/extensions/ebt_arp.c
+++ b/extensions/ebt_arp.c
@@ -174,7 +174,7 @@
 
 static void final_check(const struct ebt_u_entry *entry,
    const struct ebt_entry_match *match, const char *name,
-   unsigned int hook_mask, unsigned int time)
+   unsigned int hookmask, unsigned int time)
 {
 	if (entry->bitmask & EBT_NOPROTO || entry->bitmask & EBT_802_3 ||
 	   (entry->ethproto != ETH_P_ARP && entry->ethproto != ETH_P_RARP) ||
diff --git a/extensions/ebt_ip.c b/extensions/ebt_ip.c
index ddd9944..94daef3 100644
--- a/extensions/ebt_ip.c
+++ b/extensions/ebt_ip.c
@@ -217,7 +217,7 @@
 
 static void final_check(const struct ebt_u_entry *entry,
    const struct ebt_entry_match *match, const char *name,
-   unsigned int hook_mask, unsigned int time)
+   unsigned int hookmask, unsigned int time)
 {
 	if (entry->bitmask & EBT_NOPROTO || entry->bitmask & EBT_802_3 ||
 	   entry->ethproto != ETH_P_IP || entry->invflags & EBT_IPROTO)
diff --git a/extensions/ebt_log.c b/extensions/ebt_log.c
index 4232bed..c9461b5 100644
--- a/extensions/ebt_log.c
+++ b/extensions/ebt_log.c
@@ -139,7 +139,7 @@
 
 static void final_check(const struct ebt_u_entry *entry,
    const struct ebt_entry_watcher *watcher, const char *name,
-   unsigned int hook_mask, unsigned int time)
+   unsigned int hookmask, unsigned int time)
 {
 	return;
 }
diff --git a/extensions/ebt_mark.c b/extensions/ebt_mark.c
index 0514254..8696348 100644
--- a/extensions/ebt_mark.c
+++ b/extensions/ebt_mark.c
@@ -65,7 +65,7 @@
 
 static void final_check(const struct ebt_u_entry *entry,
    const struct ebt_entry_target *target, const char *name,
-   unsigned int hook_mask, unsigned int time)
+   unsigned int hookmask, unsigned int time)
 {
 	struct ebt_mark_t_info *markinfo =
 	   (struct ebt_mark_t_info *)target->data;
diff --git a/extensions/ebt_mark_m.c b/extensions/ebt_mark_m.c
index 9ecb07e..14b2540 100644
--- a/extensions/ebt_mark_m.c
+++ b/extensions/ebt_mark_m.c
@@ -64,7 +64,7 @@
 
 static void final_check(const struct ebt_u_entry *entry,
    const struct ebt_entry_match *match, const char *name,
-   unsigned int hook_mask, unsigned int time)
+   unsigned int hookmask, unsigned int time)
 {
 }
 
diff --git a/extensions/ebt_nat.c b/extensions/ebt_nat.c
index f25c806..c627714 100644
--- a/extensions/ebt_nat.c
+++ b/extensions/ebt_nat.c
@@ -121,14 +121,14 @@
 
 static void final_check_s(const struct ebt_u_entry *entry,
    const struct ebt_entry_target *target, const char *name,
-   unsigned int hook_mask, unsigned int time)
+   unsigned int hookmask, unsigned int time)
 {
 	struct ebt_nat_info *natinfo = (struct ebt_nat_info *)target->data;
 
 	if (BASE_CHAIN && natinfo->target == EBT_RETURN)
 		print_error("--snat-target RETURN not allowed on base chain");
 	CLEAR_BASE_CHAIN_BIT;
-	if ((hook_mask & ~(1 << NF_BR_POST_ROUTING)) || strcmp(name, "nat"))
+	if ((hookmask & ~(1 << NF_BR_POST_ROUTING)) || strcmp(name, "nat"))
 		print_error("Wrong chain for snat");
 	if (time == 0 && to_source_supplied == 0)
 		print_error("No snat address supplied");
@@ -136,16 +136,16 @@
 
 static void final_check_d(const struct ebt_u_entry *entry,
    const struct ebt_entry_target *target, const char *name,
-   unsigned int hook_mask, unsigned int time)
+   unsigned int hookmask, unsigned int time)
 {
 	struct ebt_nat_info *natinfo = (struct ebt_nat_info *)target->data;
 
 	if (BASE_CHAIN && natinfo->target == EBT_RETURN)
 		print_error("--dnat-target RETURN not allowed on base chain");
 	CLEAR_BASE_CHAIN_BIT;
-	if (((hook_mask & ~((1 << NF_BR_PRE_ROUTING) | (1 << NF_BR_LOCAL_OUT))) ||
-	   strcmp(name, "nat")) &&
-	   ((hook_mask & ~(1 << NF_BR_BROUTING)) || strcmp(name, "broute")))
+	if (((hookmask & ~((1 << NF_BR_PRE_ROUTING) | (1 << NF_BR_LOCAL_OUT)))
+	   || strcmp(name, "nat")) &&
+	   ((hookmask & ~(1 << NF_BR_BROUTING)) || strcmp(name, "broute")))
 		print_error("Wrong chain for dnat");
 	if (time == 0 && to_dest_supplied == 0)
 		print_error("No dnat address supplied");
diff --git a/extensions/ebt_redirect.c b/extensions/ebt_redirect.c
index 1975435..d74d46d 100644
--- a/extensions/ebt_redirect.c
+++ b/extensions/ebt_redirect.c
@@ -50,16 +50,17 @@
 
 static void final_check(const struct ebt_u_entry *entry,
    const struct ebt_entry_target *target, const char *name,
-   unsigned int hook_mask, unsigned int time)
+   unsigned int hookmask, unsigned int time)
 {
 	struct ebt_redirect_info *redirectinfo =
 	   (struct ebt_redirect_info *)target->data;
 
 	if (BASE_CHAIN && redirectinfo->target == EBT_RETURN)
-		print_error("--redirect-target RETURN not allowed on base chain");
+		print_error("--redirect-target RETURN not allowed on "
+		            "base chain");
 	CLEAR_BASE_CHAIN_BIT;
-	if ( ((hook_mask & ~(1 << NF_BR_PRE_ROUTING)) || strcmp(name, "nat")) &&
-	   ((hook_mask & ~(1 << NF_BR_BROUTING)) || strcmp(name, "broute")) )
+	if ( ((hookmask & ~(1 << NF_BR_PRE_ROUTING)) || strcmp(name, "nat")) &&
+	   ((hookmask & ~(1 << NF_BR_BROUTING)) || strcmp(name, "broute")) )
 		print_error("Wrong chain for redirect");
 }
 
diff --git a/extensions/ebt_standard.c b/extensions/ebt_standard.c
index 01f5b8c..cd34b56 100644
--- a/extensions/ebt_standard.c
+++ b/extensions/ebt_standard.c
@@ -27,7 +27,7 @@
 
 static void final_check(const struct ebt_u_entry *entry,
    const struct ebt_entry_target *target, const char *name,
-   unsigned int hook_mask, unsigned int time)
+   unsigned int hookmask, unsigned int time)
 {
 }
 
diff --git a/extensions/ebt_vlan.c b/extensions/ebt_vlan.c
index 51f9768..1bab20c 100644
--- a/extensions/ebt_vlan.c
+++ b/extensions/ebt_vlan.c
@@ -215,7 +215,7 @@
 static void
 final_check (const struct ebt_u_entry *entry,
 	     const struct ebt_entry_match *match,
-	     const char *name, unsigned int hook, unsigned int time)
+	     const char *name, unsigned int hookmask, unsigned int time)
 {
 
 	struct ebt_vlan_info *vlaninfo =
