diff --git a/board/ifm/ac14xx/ac14xx.c b/board/ifm/ac14xx/ac14xx.c
index c8e88cc99eb3b1067a67072bdd9c108d1f4ef735..dc2aff099301e8ca0e95846ae3053c3b0b2c71bd 100644
--- a/board/ifm/ac14xx/ac14xx.c
+++ b/board/ifm/ac14xx/ac14xx.c
@@ -336,8 +336,8 @@ int misc_init_r(void)
 	/*
 	 * enforce the start of the recovery system when
 	 * - the appropriate keys were pressed
-	 * - a previous installation was aborted or has failed
 	 * - "some" external software told us to
+	 * - a previous installation was aborted or has failed
 	 */
 	want_recovery = 0;
 	keys = gpio_querykbd();
@@ -347,6 +347,11 @@ int misc_init_r(void)
 		printf("detected recovery request (keyboard)\n");
 		want_recovery = 1;
 	}
+	s = getenv("want_recovery");
+	if ((s != NULL) && (*s != '\0')) {
+		printf("detected recovery request (environment)\n");
+		want_recovery = 1;
+	}
 	s = getenv("install_in_progress");
 	if ((s != NULL) && (*s != '\0')) {
 		printf("previous installation has not completed\n");
@@ -357,11 +362,6 @@ int misc_init_r(void)
 		printf("previous installation has failed\n");
 		want_recovery = 1;
 	}
-	s = getenv("want_recovery");
-	if ((s != NULL) && (*s != '\0')) {
-		printf("detected recovery request (environment)\n");
-		want_recovery = 1;
-	}
 	if (want_recovery) {
 		printf("enforced start of the recovery system\n");
 		setenv("bootcmd", "run recovery");