diff --git a/extensions/libipt_connmark.c b/extensions/libipt_connmark.c
index 14cbe33..8f81f02 100644
--- a/extensions/libipt_connmark.c
+++ b/extensions/libipt_connmark.c
@@ -65,11 +65,8 @@
 }
 
 static void
-print_mark(unsigned long mark, unsigned long mask, int invert, int numeric)
+print_mark(unsigned long mark, unsigned long mask, int numeric)
 {
-	if (invert)
-		fputc('!', stdout);
-
 	if(mask != 0xffffffff)
 		printf("0x%lx/0x%lx ", mark, mask);
 	else
@@ -91,20 +88,25 @@
       const struct ipt_entry_match *match,
       int numeric)
 {
+	struct ipt_connmark_info *info = (struct ipt_connmark_info *)match->data;
+
 	printf("CONNMARK match ");
-	print_mark(((struct ipt_connmark_info *)match->data)->mark,
-		  ((struct ipt_connmark_info *)match->data)->mask,
-		  ((struct ipt_connmark_info *)match->data)->invert, numeric);
+	if (info->invert)
+		printf("!");
+	print_mark(info->mark, info->mask, numeric);
 }
 
 /* Saves the union ipt_matchinfo in parsable form to stdout. */
 static void
 save(const struct ipt_ip *ip, const struct ipt_entry_match *match)
 {
+	struct ipt_connmark_info *info = (struct ipt_connmark_info *)match->data;
+
+	if (info->invert)
+		printf("! ");
+
 	printf("--mark ");
-	print_mark(((struct ipt_connmark_info *)match->data)->mark,
-		  ((struct ipt_connmark_info *)match->data)->mask,
-		  ((struct ipt_connmark_info *)match->data)->invert, 0);
+	print_mark(info->mark, info->mask, 0);
 }
 
 static
diff --git a/extensions/libipt_mark.c b/extensions/libipt_mark.c
index 82e826d..4aa780b 100644
--- a/extensions/libipt_mark.c
+++ b/extensions/libipt_mark.c
@@ -65,11 +65,8 @@
 }
 
 static void
-print_mark(unsigned long mark, unsigned long mask, int invert, int numeric)
+print_mark(unsigned long mark, unsigned long mask, int numeric)
 {
-	if (invert)
-		fputc('!', stdout);
-
 	if(mask != 0xffffffff)
 		printf("0x%lx/0x%lx ", mark, mask);
 	else
@@ -91,20 +88,27 @@
       const struct ipt_entry_match *match,
       int numeric)
 {
+	struct ipt_mark_info *info = (struct ipt_mark_info *)match->data;
+
 	printf("MARK match ");
-	print_mark(((struct ipt_mark_info *)match->data)->mark,
-		  ((struct ipt_mark_info *)match->data)->mask,
-		  ((struct ipt_mark_info *)match->data)->invert, numeric);
+
+	if (info->invert)
+		printf("!");
+	
+	print_mark(info->mark, info->mask, numeric);
 }
 
 /* Saves the union ipt_matchinfo in parsable form to stdout. */
 static void
 save(const struct ipt_ip *ip, const struct ipt_entry_match *match)
 {
+	struct ipt_mark_info *info = (struct ipt_mark_info *)match->data;
+
+	if (info->invert)
+		printf("! ");
+	
 	printf("--mark ");
-	print_mark(((struct ipt_mark_info *)match->data)->mark,
-		  ((struct ipt_mark_info *)match->data)->mask,
-		  ((struct ipt_mark_info *)match->data)->invert, 0);
+	print_mark(info->mark, info->mask, 0);
 }
 
 static
