diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 1b8a8c15610f68954643f967081d61ca8eee0e74..7ae5d5b29404f0cfc30e32d2f07b1c3adcc3e0af 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -498,7 +498,8 @@ static int do_bootm_subcommand(cmd_tbl_t *cmdtp, int flag, int argc,
 		return CMD_RET_USAGE;
 	}
 
-	if (images.state >= state) {
+	if (images.state < BOOTM_STATE_START ||
+	    images.state >= state) {
 		printf("Trying to execute a command out of order\n");
 		return CMD_RET_USAGE;
 	}