diff -aruN a/nanddump.c b/nanddump.c
--- a/nanddump.c	2011-11-02 21:48:36.159532935 -0700
+++ b/nanddump.c	2011-11-04 12:20:36.000000000 -0700
@@ -54,6 +54,7 @@
 "-p         --prettyprint        Print nice (hexdump)\n"
 "-q         --quiet              Don't display progress and status messages\n"
 "-s addr    --startaddress=addr  Start address\n"
+"-e         --omitempty          Omit empty pages\n"
 	);
 	exit(EXIT_SUCCESS);
 }
@@ -83,6 +84,7 @@
 static const char	*dumpfile;		// dump file name
 static bool		omitbad = false;
 static bool		quiet = false;		// suppress diagnostic output
+static bool		omitempty = false;      // don't output empty pages
 
 static void process_options (int argc, char * const argv[])
 {
@@ -90,7 +92,7 @@
 
 	for (;;) {
 		int option_index = 0;
-		static const char *short_options = "bs:f:il:opqn";
+		static const char *short_options = "bs:f:il:opqne";
 		static const struct option long_options[] = {
 			{"help", no_argument, 0, 0},
 			{"version", no_argument, 0, 0},
@@ -103,6 +105,7 @@
 			{"length", required_argument, 0, 'l'},
 			{"noecc", no_argument, 0, 'n'},
 			{"quiet", no_argument, 0, 'q'},
+			{"omitempty", no_argument, 0, 'e'},
 			{0, 0, 0, 0},
 		};
 
@@ -153,6 +156,9 @@
 			case 'n':
 				noecc = true;
 				break;
+			case 'e':
+				omitempty = true;
+				break;
 			case '?':
 				error++;
 				break;
@@ -192,6 +198,7 @@
 	struct nand_oobinfo old_oobinfo;
 	struct mtd_ecc_stats stat1, stat2;
 	bool eccstats = false;
+	bool isempty;
 
 	process_options(argc, argv);
 
@@ -329,6 +336,23 @@
 			stat1 = stat2;
 		}
 
+		if (omitempty) {
+			isempty = true;
+			for (i = 0; i < bs; i++) {
+				if (readbuf[i] != 0xff) {
+					isempty = false;
+					break;
+				}
+			}
+
+			if (isempty) {
+				if (!quiet)
+					fprintf(stderr, "Skipping empty page at offset 0x%08lx\n", ofs);
+
+				continue;
+        	}
+        }
+
 		/* Write out page data */
 		if (pretty_print) {
 			for (i = 0; i < bs; i += 16) {
diff -aruN a/nandwrite.c b/nandwrite.c
--- a/nandwrite.c	2011-11-02 21:48:36.159532935 -0700
+++ b/nandwrite.c	2011-11-03 15:54:26.949570997 -0700
@@ -486,6 +486,9 @@
 
 				if (baderaseblock) {
 					mtdoffset = blockstart + meminfo.erasesize;
+					if (mtdoffset >= meminfo.size) {
+						goto closeall;
+					}
 				}
 				offs +=  meminfo.erasesize / blockalign ;
 			} while ( offs < blockstart + meminfo.erasesize );
