diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index c874e7c570fffc07e030e2cd0b666d6df4fad914..af3c6740f9ac14401b50f3167849495b37d0f0b0 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -223,6 +223,14 @@ int do_nand (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		else if (cmdtail && !strcmp(cmdtail, ".e"))
 			cmd |= NANDRW_JFFS2;	/* skip bad blocks */
 #endif
+#ifdef CFG_NAND_SKIP_BAD_DOT_I
+		/* need ".i" same as ".jffs2s" for compatibility with older units (esd) */
+		/* ".i" for image -> read skips bad block (no 0xff) */
+		else if (cmdtail && !strcmp(cmdtail, ".i"))
+			cmd |= NANDRW_JFFS2;	/* skip bad blocks (on read too) */
+			if (cmd & NANDRW_READ)
+				cmd |= NANDRW_JFFS2_SKIP;	/* skip bad blocks (on read too) */
+#endif /* CFG_NAND_SKIP_BAD_DOT_I */
 		else if (cmdtail) {
 			printf ("Usage:\n%s\n", cmdtp->usage);
 			return 1;