chain name may not clash with target name
diff --git a/ip6tables.c b/ip6tables.c
index dad9052..b3346b1 100644
--- a/ip6tables.c
+++ b/ip6tables.c
@@ -1161,9 +1161,6 @@
 	u_int8_t flags;
 	char buf[BUFSIZ];
 
-	/* User creates a chain called "REJECT": this overrides the
-	   `REJECT' target module.  Keep feeding them rope until the
-	   revolution... Bwahahahahah */
 	if (!ip6tc_is_chain(targname, handle))
 		target = find_target(targname, TRY_LOAD);
 	else
@@ -1797,6 +1794,14 @@
 			break;
 
 		case 'N':
+			if (optarg && *optarg == '-')
+				exit_error(PARAMETER_PROBLEM,
+					   "chain name not allowed to start "
+					   "with `-'\n");
+			if (find_target(optarg, TRY_LOAD))
+				exit_error(PARAMETER_PROBLEM,
+					   "chain name may not clash "
+					   "with target name\n");
 			add_command(&command, CMD_NEW_CHAIN, CMD_NONE,
 				    invert);
 			chain = optarg;