diff --git a/post/post.c b/post/post.c
index c016c3a..d31829b 100644
--- a/post/post.c
+++ b/post/post.c
@@ -238,14 +238,20 @@
 		if (test_flags & POST_PREREL) {
 			if ((*test->test) (flags) == 0)
 				post_log_mark_succ ( test->testid );
-			else if (test_flags & POST_CRITICAL)
-				gd->flags |= GD_FLG_POSTFAIL;
+			else {
+				if (test_flags & POST_CRITICAL)
+					gd->flags |= GD_FLG_POSTFAIL;
+				if (test_flags & POST_STOP)
+					gd->flags |= GD_FLG_POSTSTOP;
+			}
 		} else {
 		if ((*test->test) (flags) != 0) {
 			post_log ("FAILED\n");
 			show_boot_progress (-32);
 			if (test_flags & POST_CRITICAL)
 				gd->flags |= GD_FLG_POSTFAIL;
+			if (test_flags & POST_STOP)
+				gd->flags |= GD_FLG_POSTSTOP;
 		}
 		else
 			post_log ("PASSED\n");
@@ -271,6 +277,9 @@
 	if (name == NULL) {
 		unsigned int last;
 
+		if (gd->flags & GD_FLG_POSTSTOP)
+			return 0;
+
 		if (post_bootmode_get (&last) & POST_POWERTEST) {
 			if (last & POST_FAIL_SAVE) {
 				last &= ~POST_FAIL_SAVE;
@@ -285,6 +294,8 @@
 						 flags | POST_REBOOT, last);
 
 				for (i = last + 1; i < post_list_size; i++) {
+					if (gd->flags & GD_FLG_POSTSTOP)
+						break;
 					post_run_single (post_list + i,
 							 test_flags[i],
 							 flags, i);
@@ -292,6 +303,8 @@
 			}
 		} else {
 			for (i = 0; i < post_list_size; i++) {
+				if (gd->flags & GD_FLG_POSTSTOP)
+					break;
 				post_run_single (post_list + i,
 						 test_flags[i],
 						 flags, i);
