diff --git a/extensions/ebt_nat.c b/extensions/ebt_nat.c
index 16e1842..f2e79ca 100644
--- a/extensions/ebt_nat.c
+++ b/extensions/ebt_nat.c
@@ -76,13 +76,14 @@
 		ebt_check_option(flags, OPT_SNAT);
 		to_source_supplied = 1;
 		if (!(addr = ether_aton(optarg)))
-			print_error("Problem with specified --to-source mac");
+			ebt_print_error("Problem with specified --to-source "
+					"mac");
 		memcpy(natinfo->mac, addr, ETH_ALEN);
 		break;
 	case NAT_S_TARGET:
 		ebt_check_option(flags, OPT_SNAT_TARGET);
 		if (FILL_TARGET(optarg, natinfo->target))
-			print_error("Illegal --snat-target target");
+			ebt_print_error("Illegal --snat-target target");
 		break;
 	default:
 		return 0;
@@ -104,14 +105,14 @@
 		ebt_check_option(flags, OPT_DNAT);
 		to_dest_supplied = 1;
 		if (!(addr = ether_aton(optarg)))
-			print_error("Problem with specified "
-			            "--to-destination mac");
+			ebt_print_error("Problem with specified "
+					"--to-destination mac");
 		memcpy(natinfo->mac, addr, ETH_ALEN);
 		break;
 	case NAT_D_TARGET:
 		ebt_check_option(flags, OPT_DNAT_TARGET);
 		if (FILL_TARGET(optarg, natinfo->target))
-			print_error("Illegal --dnat-target target");
+			ebt_print_error("Illegal --dnat-target target");
 		break;
 	default:
 		return 0;
@@ -126,12 +127,13 @@
 	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");
+		ebt_print_error("--snat-target RETURN not allowed on base "
+				"chain");
 	CLEAR_BASE_CHAIN_BIT;
 	if ((hookmask & ~(1 << NF_BR_POST_ROUTING)) || strcmp(name, "nat"))
-		print_error("Wrong chain for snat");
+		ebt_print_error("Wrong chain for snat");
 	if (time == 0 && to_source_supplied == 0)
-		print_error("No snat address supplied");
+		ebt_print_error("No snat address supplied");
 }
 
 static void final_check_d(const struct ebt_u_entry *entry,
@@ -141,14 +143,15 @@
 	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");
+		ebt_print_error("--dnat-target RETURN not allowed on base "
+				"chain");
 	CLEAR_BASE_CHAIN_BIT;
 	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");
+		ebt_print_error("Wrong chain for dnat");
 	if (time == 0 && to_dest_supplied == 0)
-		print_error("No dnat address supplied");
+		ebt_print_error("No dnat address supplied");
 }
 
 static void print_s(const struct ebt_u_entry *entry,
@@ -207,8 +210,7 @@
 	.extra_ops	= opts_d,
 };
 
-static void _init(void) __attribute__ ((constructor));
-static void _init(void)
+void _init(void)
 {
 	ebt_register_target(&snat_target);
 	ebt_register_target(&dnat_target);
