diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 96d09e68d478b4c7cc1ac6f11c6ffeab5564cead..aca54b5a579704d671c22039d30b177cf71bb8f8 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -342,8 +342,12 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	show_boot_progress (-9);
 #ifdef DEBUG
 	puts ("\n## Control returned to monitor - resetting...\n");
-	do_reset (cmdtp, flag, argc, argv);
+	if (images.autostart)
+		do_reset (cmdtp, flag, argc, argv);
 #endif
+	if (!images.autostart && iflag)
+		enable_interrupts();
+
 	return 1;
 }