diff --git a/debug.h b/debug.h
index 7d540b5..0614747 100644
--- a/debug.h
+++ b/debug.h
@@ -2,6 +2,9 @@
 #define __DEBUG_H__ 1
 
 //#define printf_debug(x...) printf(x)
-#define printf_debug(x...) { }
+
+extern int verbose;
+
+#define printf_debug(x...) { if(verbose) printf(x); }
 
 #endif
diff --git a/flash_rom.c b/flash_rom.c
index 7b38c8a..fb7d030 100644
--- a/flash_rom.c
+++ b/flash_rom.c
@@ -40,6 +40,9 @@
 
 char *chip_to_probe = NULL;
 
+int exclude_start_page, exclude_end_page;
+int force=0, verbose=0;
+
 struct flashchip *probe_flash(struct flashchip *flash)
 {
 	int fd_mem;
@@ -86,7 +89,7 @@
 	return NULL;
 }
 
-int verify_flash(struct flashchip *flash, uint8_t *buf, int verbose)
+int verify_flash(struct flashchip *flash, uint8_t *buf)
 {
 	int i;
 	int total_size = flash->total_size * 1024;
@@ -132,9 +135,6 @@
 	exit(1);
 }
 
-int exclude_start_page, exclude_end_page;
-int force=0;
-
 int main(int argc, char *argv[])
 {
 	uint8_t *buf;
@@ -147,7 +147,6 @@
 	    write_it = 0, 
 	    erase_it = 0, 
 	    verify_it = 0;
-	int verbose = 0;
 
 	static struct option long_options[]= {
 		{ "read", 0, 0, 'r' },
@@ -340,7 +339,7 @@
 		flash->write(flash, buf);
 
 	if (verify_it)
-		verify_flash(flash, buf, verbose);
+		verify_flash(flash, buf);
 
 	return 0;
 }
diff --git a/layout.c b/layout.c
index 2219096..8ac3af8 100644
--- a/layout.c
+++ b/layout.c
@@ -50,14 +50,18 @@
 		return 0;
 	}
 	
-	printf("LinuxBIOS image size=%d\n", *walk);
+	printf("LinuxBIOS last image size (not rom size) is %d bytes.\n", *walk);
 	
 	walk--; mainboard_part=strdup((const char *)(bios+size-*walk));
 	walk--; mainboard_vendor=strdup((const char *)(bios+size-*walk));
 	printf("MANUFACTURER: %s\n", mainboard_vendor);
 	printf("MAINBOARD ID: %s\n", mainboard_part);
-	if(lb_vendor && !strcmp(mainboard_vendor, lb_vendor) && 
-	   lb_part && !strcmp(mainboard_part, lb_part)) {
+	
+	/* These comparisons are case insensitive to make things
+	 * a little less user^Werror prone. 
+	 */
+	if(lb_vendor && !strcasecmp(mainboard_vendor, lb_vendor) && 
+	   lb_part && !strcasecmp(mainboard_part, lb_part)) {
 		printf ("This firmware image matches "
 		        "this motherboard.\n");
 	} else {
