diff --git a/flash.h b/flash.h
index d245824..806ef08 100644
--- a/flash.h
+++ b/flash.h
@@ -338,11 +338,9 @@
 
 /* print.c */
 char *flashbuses_to_text(enum chipbustype bustype);
-void print_supported_chips(void);
-void print_supported_chipsets(void);
-void print_supported_boards(void);
+void print_supported(void);
 void print_supported_pcidevs(struct pcidev_status *devs);
-void print_wiki_tables(void);
+void print_supported_wiki(void);
 
 /* board_enable.c */
 void w836xx_ext_enter(uint16_t port);
diff --git a/flashrom.c b/flashrom.c
index d1a86cb..6f302bb 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -801,14 +801,25 @@
 			write_it = 1;
 			break;
 		case 'v':
+			//FIXME: gracefully handle superfluous -v
 			if (++operation_specified > 1) {
 				fprintf(stderr, "More than one operation "
 					"specified. Aborting.\n");
 				exit(1);
 			}
+			if (dont_verify_it) {
+				fprintf(stderr, "--verify and --noverify are"
+					"mutually exclusive. Aborting.\n");
+				exit(1);
+			}
 			verify_it = 1;
 			break;
 		case 'n':
+			if (verify_it) {
+				fprintf(stderr, "--verify and --noverify are"
+					"mutually exclusive. Aborting.\n");
+				exit(1);
+			}
 			dont_verify_it = 1;
 			break;
 		case 'c':
@@ -896,29 +907,13 @@
 	}
 
 	if (list_supported) {
-		print_supported_chips();
-		print_supported_chipsets();
-		print_supported_boards();
-		printf("\nSupported PCI devices flashrom can use "
-		       "as programmer:\n\n");
-#if NIC3COM_SUPPORT == 1
-		print_supported_pcidevs(nics_3com);
-#endif
-#if GFXNVIDIA_SUPPORT == 1
-		print_supported_pcidevs(gfx_nvidia);
-#endif
-#if DRKAISER_SUPPORT == 1
-		print_supported_pcidevs(drkaiser_pcidev);
-#endif
-#if SATASII_SUPPORT == 1
-		print_supported_pcidevs(satas_sii);
-#endif
+		print_supported();
 		exit(0);
 	}
 
 #if PRINT_WIKI_SUPPORT == 1
 	if (list_supported_wiki) {
-		print_wiki_tables();
+		print_supported_wiki();
 		exit(0);
 	}
 #endif
@@ -930,6 +925,11 @@
 
 	if (optind < argc)
 		filename = argv[optind++];
+	
+	if (optind < argc) {
+		printf("Error: Extra parameter found.\n");
+		usage(argv[0]);
+	}
 
 	if (programmer_init()) {
 		fprintf(stderr, "Error: Programmer initialization failed.\n");
@@ -1146,7 +1146,7 @@
 		if (write_it)
 			programmer_delay(1000*1000);
 		ret = verify_flash(flash, buf);
-		/* If we tried to write, and now we don't properly verify, we
+		/* If we tried to write, and verification now fails, we
 		 * might have an emergency situation.
 		 */
 		if (ret && write_it)
diff --git a/print.c b/print.c
index 4da070a..a189efe 100644
--- a/print.c
+++ b/print.c
@@ -222,6 +222,27 @@
 		"Laptops which have been verified to NOT work yet");
 }
 
+void print_supported(void)
+{
+		print_supported_chips();
+		print_supported_chipsets();
+		print_supported_boards();
+		printf("\nSupported PCI devices flashrom can use "
+		       "as programmer:\n\n");
+#if NIC3COM_SUPPORT == 1
+		print_supported_pcidevs(nics_3com);
+#endif
+#if GFXNVIDIA_SUPPORT == 1
+		print_supported_pcidevs(gfx_nvidia);
+#endif
+#if DRKAISER_SUPPORT == 1
+		print_supported_pcidevs(drkaiser_pcidev);
+#endif
+#if SATASII_SUPPORT == 1
+		print_supported_pcidevs(satas_sii);
+#endif
+}
+
 
 /* Please keep this list alphabetically ordered by vendor/board. */
 const struct board_info boards_ok[] = {
diff --git a/print_wiki.c b/print_wiki.c
index c00e93a..825aa77 100644
--- a/print_wiki.c
+++ b/print_wiki.c
@@ -539,7 +539,7 @@
 	}
 }
 
-void print_wiki_tables(void)
+void print_supported_wiki(void)
 {
 	time_t t = time(NULL);
 
