diff --git a/Shorewall/Perl/Shorewall/Chains.pm b/Shorewall/Perl/Shorewall/Chains.pm
index fb38d07..b0a0524 100644
--- a/Shorewall/Perl/Shorewall/Chains.pm
+++ b/Shorewall/Perl/Shorewall/Chains.pm
@@ -748,7 +748,12 @@ sub set_rule_option( $$$ ) {
 	} elsif ( $opttype == EXCLUSIVE ) {
 	    $ruleref->{$option} .= ",$value";
 	} elsif ( $opttype == UNIQUE ) {
-	    fatal_error "Multiple $option settings in one rule is prohibited";
+	    if ( $option eq 'p' ) {
+		my ( $proto ) = split( ' ', $ruleref->{p} );
+		$value = $ruleref->{p} if $proto eq $value;
+	    }
+
+	    fatal_error "Multiple $option settings in one rule is prohibited" unless $value eq $ruleref->{$option};
 	} else {
 	    assert(0, $opttype );
 	}
diff --git a/Shorewall/Perl/Shorewall/Rules.pm b/Shorewall/Perl/Shorewall/Rules.pm
index 1b71285..86c773f 100644
--- a/Shorewall/Perl/Shorewall/Rules.pm
+++ b/Shorewall/Perl/Shorewall/Rules.pm
@@ -2786,7 +2786,7 @@ sub perl_action_tcp_helper($$) {
 				     merge_target( $ref, $target ),
 				     '',
 				     @columns[0,1],
-				     '-',
+				     6,
 				     @columns[3..LAST_COLUMN]
 				   );
 	} else {
