diff --git a/extensions/libip6t_MARK.c b/extensions/libip6t_MARK.c
index 6062a39..292f957 100644
--- a/extensions/libip6t_MARK.c
+++ b/extensions/libip6t_MARK.c
@@ -8,11 +8,6 @@
 #include <linux/netfilter_ipv6/ip6_tables.h>
 #include <linux/netfilter_ipv6/ip6t_MARK.h>
 
-struct markinfo {
-	struct ip6t_entry_target t;
-	struct ip6t_mark_target_info mark;
-};
-
 /* Function which prints out usage message. */
 static void
 help(void)
@@ -25,8 +20,8 @@
 }
 
 static struct option opts[] = {
-	{ "set-mark", 1, 0, '1' },
-	{ 0 }
+	{ .name = "set-mark", .has_arg = 1, .flag = 0, .val = '1' },
+	{ .name = 0 }
 };
 
 /* Initialize the target. */
@@ -72,12 +67,6 @@
 		           "MARK target: Parameter --set-mark is required");
 }
 
-static void
-print_mark(unsigned long mark, int numeric)
-{
-	printf("0x%lx ", mark);
-}
-
 /* Prints out the targinfo. */
 static void
 print(const struct ip6t_ip6 *ip,
@@ -86,8 +75,8 @@
 {
 	const struct ip6t_mark_target_info *markinfo =
 		(const struct ip6t_mark_target_info *)target->data;
-	printf("MARK set ");
-	print_mark(markinfo->mark, numeric);
+
+	printf("MARK set 0x%lx ", markinfo->mark);
 }
 
 /* Saves the union ipt_targinfo in parsable form to stdout. */
@@ -101,19 +90,18 @@
 }
 
 static
-struct ip6tables_target mark
-= { NULL,
-    "MARK",
-    IPTABLES_VERSION,
-    IP6T_ALIGN(sizeof(struct ip6t_mark_target_info)),
-    IP6T_ALIGN(sizeof(struct ip6t_mark_target_info)),
-    &help,
-    &init,
-    &parse,
-    &final_check,
-    &print,
-    &save,
-    opts
+struct ip6tables_target mark = {
+	.name          = "MARK",
+	.version       = IPTABLES_VERSION,
+	.size          = IP6T_ALIGN(sizeof(struct ip6t_mark_target_info)),
+	.userspacesize = IP6T_ALIGN(sizeof(struct ip6t_mark_target_info)),
+	.help          = &help,
+	.init          = &init,
+	.parse         = &parse,
+	.final_check   = &final_check,
+	.print         = &print,
+	.save          = &save,
+	.extra_opts    = opts
 };
 
 void _init(void)
diff --git a/extensions/libip6t_frag.c b/extensions/libip6t_frag.c
index 2cc8a37..51a14fa 100644
--- a/extensions/libip6t_frag.c
+++ b/extensions/libip6t_frag.c
@@ -24,13 +24,13 @@
 }
 
 static struct option opts[] = {
-	{ "fragid", 1, 0, '1' },
-	{ "fraglen", 1, 0, '2' },
-	{ "fragres", 0, 0, '3' },
-	{ "fragfirst", 0, 0, '4' },
-	{ "fragmore", 0, 0, '5' },
-	{ "fraglast", 0, 0, '6' },
-	{0}
+	{ .name = "fragid",    .has_arg = 1, .flag = 0, .val = '1' },
+	{ .name = "fraglen",   .has_arg = 1, .flag = 0, .val = '2' },
+	{ .name = "fragres",   .has_arg = 0, .flag = 0, .val = '3' },
+	{ .name = "fragfirst", .has_arg = 0, .flag = 0, .val = '4' },
+	{ .name = "fragmore",  .has_arg = 0, .flag = 0, .val = '5' },
+	{ .name = "fraglast",  .has_arg = 0, .flag = 0, .val = '6' },
+	{ .name = 0 }
 };
 
 static u_int32_t
@@ -39,7 +39,7 @@
 	unsigned long int id;
 	char* ep;
 
-	id =  strtoul(idstr,&ep,0) ;
+	id = strtoul(idstr, &ep, 0);
 
 	if ( idstr == ep ) {
 		exit_error(PARAMETER_PROBLEM,
@@ -171,16 +171,10 @@
 
 	if (min != 0 || max != 0xFFFFFFFF || invert) {
 		printf("%s", name);
-		if (min == max) {
-			printf(":%s", inv);
-			printf("%u", min);
-		} else {
-			printf("s:%s", inv);
-			printf("%u",min);
-			printf(":");
-			printf("%u",max);
-		}
-		printf(" ");
+		if (min == max)
+			printf(":%s%u ", inv, min);
+		else
+			printf("s:%s%u:%u ", inv, min, max);
 	}
 }
 
@@ -194,16 +188,25 @@
 	printf("frag ");
 	print_ids("id", frag->ids[0], frag->ids[1],
 		    frag->invflags & IP6T_FRAG_INV_IDS);
+
 	if (frag->flags & IP6T_FRAG_LEN) {
-		printf("length");
-		printf(":%s", frag->invflags & IP6T_FRAG_INV_LEN ? "!" : "");
-		printf("%u", frag->hdrlen);
-		printf(" ");
+		printf("length:%s%u ",
+			frag->invflags & IP6T_FRAG_INV_LEN ? "!" : "",
+			frag->hdrlen);
 	}
-	if (frag->flags & IP6T_FRAG_RES) printf("reserved ");
-	if (frag->flags & IP6T_FRAG_FST) printf("first ");
-	if (frag->flags & IP6T_FRAG_MF) printf("more ");
-	if (frag->flags & IP6T_FRAG_NMF) printf("last ");
+
+	if (frag->flags & IP6T_FRAG_RES)
+		printf("reserved ");
+
+	if (frag->flags & IP6T_FRAG_FST)
+		printf("first ");
+
+	if (frag->flags & IP6T_FRAG_MF)
+		printf("more ");
+
+	if (frag->flags & IP6T_FRAG_NMF)
+		printf("last ");
+
 	if (frag->invflags & ~IP6T_FRAG_INV_MASK)
 		printf("Unknown invflags: 0x%X ",
 		       frag->invflags & ~IP6T_FRAG_INV_MASK);
@@ -234,27 +237,32 @@
 			fraginfo->hdrlen);
 	}
 
-	if (fraginfo->flags & IP6T_FRAG_RES) printf("--fragres ");
-	if (fraginfo->flags & IP6T_FRAG_FST) printf("--fragfirst ");
-	if (fraginfo->flags & IP6T_FRAG_MF) printf("--fragmore ");
-	if (fraginfo->flags & IP6T_FRAG_NMF) printf("--fraglast ");
+	if (fraginfo->flags & IP6T_FRAG_RES)
+		printf("--fragres ");
 
+	if (fraginfo->flags & IP6T_FRAG_FST)
+		printf("--fragfirst ");
+
+	if (fraginfo->flags & IP6T_FRAG_MF)
+		printf("--fragmore ");
+
+	if (fraginfo->flags & IP6T_FRAG_NMF)
+		printf("--fraglast ");
 }
 
 static
-struct ip6tables_match frag
-= { NULL,
-    "frag",
-    IPTABLES_VERSION,
-    IP6T_ALIGN(sizeof(struct ip6t_frag)),
-    IP6T_ALIGN(sizeof(struct ip6t_frag)),
-    &help,
-    &init,
-    &parse,
-    &final_check,
-    &print,
-    &save,
-    opts
+struct ip6tables_match frag = {
+	.name          = "frag",
+	.version       = IPTABLES_VERSION,
+	.size          = IP6T_ALIGN(sizeof(struct ip6t_frag)),
+	.userspacesize = IP6T_ALIGN(sizeof(struct ip6t_frag)),
+	.help          = &help,
+	.init          = &init,
+	.parse         = &parse,
+	.final_check   = &final_check,
+	.print         = &print,
+	.save          = &save,
+	.extra_opts    = opts
 };
 
 void
