diff --git a/extensions/ebt_among.c b/extensions/ebt_among.c
index 85bf0b5..001e9d6 100644
--- a/extensions/ebt_among.c
+++ b/extensions/ebt_among.c
@@ -68,6 +68,7 @@
 " 00:00:00:fa:eb:fe=153.19.120.250,00:00:00:fa:eb:fe=192.168.0.1\n"
 	);
 }
+static int old_size;
 
 static void init(struct ebt_entry_match *match)
 {
@@ -75,6 +76,7 @@
 	    (struct ebt_among_info *) match->data;
 
 	memset(amonginfo, 0, sizeof(struct ebt_among_info));
+	old_size = sizeof(struct ebt_among_info);
 }
 
 static struct ebt_mac_wormhash *new_wormhash(int n)
@@ -308,7 +310,7 @@
 	    (struct ebt_among_info *) (*match)->data;
 	struct ebt_mac_wormhash *wh;
 	struct ebt_entry_match *h;
-	int new_size, old_size;
+	int new_size;
 	long flen;
 	int fd;
 
@@ -354,21 +356,21 @@
 		if (ebt_errormsg[0] != '\0')
 			break;
 
-		old_size = sizeof(struct ebt_entry_match) + (**match).match_size;
-		h = malloc((new_size = old_size + ebt_mac_wormhash_size(wh)));
+		new_size = old_size+ebt_mac_wormhash_size(wh);
+		h = malloc(sizeof(struct ebt_entry_match)+EBT_ALIGN(new_size));
 		if (!h)
 			ebt_print_memory();
-		memcpy(h, *match, old_size);
-		memcpy((char *) h + old_size, wh, ebt_mac_wormhash_size(wh));
-		h->match_size = new_size - sizeof(struct ebt_entry_match);
+		memcpy(h, *match, old_size+sizeof(struct ebt_entry_match));
+		memcpy((char *)h+old_size+sizeof(struct ebt_entry_match), wh,
+		       ebt_mac_wormhash_size(wh));
+		h->match_size = EBT_ALIGN(new_size);
 		info = (struct ebt_among_info *) h->data;
 		if (c == AMONG_DST) {
-			info->wh_dst_ofs =
-			    old_size - sizeof(struct ebt_entry_match);
+			info->wh_dst_ofs = old_size;
 		} else {
-			info->wh_src_ofs =
-			    old_size - sizeof(struct ebt_entry_match);
+			info->wh_src_ofs = old_size;
 		}
+		old_size = new_size;
 		free(*match);
 		*match = h;
 		free(wh);
@@ -476,7 +478,7 @@
 }
 
 static struct ebt_u_match among_match = {
-	.name 		= "among",
+	.name 		= EBT_AMONG_MATCH,
 	.size 		= sizeof(struct ebt_among_info),
 	.help 		= print_help,
 	.init 		= init,
