--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -77,7 +77,7 @@ static int do_bootm_subcommand(cmd_tbl_t
 		return CMD_RET_USAGE;
 	}
 
-	if (state != BOOTM_STATE_START && images.state >= state) {
+	if (!(state & BOOTM_STATE_START) && images.state >= state) {
 		printf("Trying to execute a command out of order\n");
 		return CMD_RET_USAGE;
 	}