diff --git a/firmware/lib/vboot_ui.c b/firmware/lib/vboot_ui.c
index 217090a..289e000 100644
--- a/firmware/lib/vboot_ui.c
+++ b/firmware/lib/vboot_ui.c
@@ -25,6 +25,14 @@
 #include "vboot_display.h"
 #include "vboot_kernel.h"
 
+/* Global variables */
+static int power_button_released;
+
+static void vb2_init_ui(void)
+{
+	power_button_released = 0;
+}
+
 static void VbAllowUsbBoot(struct vb2_context *ctx)
 {
 	VB2_DEBUG(".");
@@ -42,6 +50,18 @@
 	struct vb2_shared_data *sd = vb2_get_sd(ctx);
 	uint32_t shutdown_request = VbExIsShutdownRequested();
 
+	/*
+	 * Ignore power button push until after we have seen it released.
+	 * This avoids shutting down immediately if the power button is still
+	 * being held on startup.
+	 */
+	if (shutdown_request & VB_SHUTDOWN_REQUEST_POWER_BUTTON) {
+		if (!power_button_released)
+			shutdown_request &= ~VB_SHUTDOWN_REQUEST_POWER_BUTTON;
+	} else {
+		power_button_released = 1;
+	}
+
 	if (key == VB_BUTTON_POWER_SHORT_PRESS)
 		shutdown_request |= VB_SHUTDOWN_REQUEST_POWER_BUTTON;
 
@@ -402,6 +422,7 @@
 
 VbError_t VbBootDeveloper(struct vb2_context *ctx)
 {
+	vb2_init_ui();
 	VbError_t retval = vb2_developer_ui(ctx);
 	VbDisplayScreen(ctx, VB_SCREEN_BLANK, 0);
 	return retval;
@@ -552,6 +573,7 @@
 
 VbError_t VbBootRecovery(struct vb2_context *ctx)
 {
+	vb2_init_ui();
 	VbError_t retval = recovery_ui(ctx);
 	VbDisplayScreen(ctx, VB_SCREEN_BLANK, 0);
 	return retval;
diff --git a/tests/vboot_api_kernel2_tests.c b/tests/vboot_api_kernel2_tests.c
index f9d061f..3bc3a7f 100644
--- a/tests/vboot_api_kernel2_tests.c
+++ b/tests/vboot_api_kernel2_tests.c
@@ -33,6 +33,7 @@
 static struct vb2_shared_data *sd;
 
 static int shutdown_request_calls_left;
+static int shutdown_request_power_held;
 static int audio_looping_calls_left;
 static uint32_t vbtlk_retval;
 static int vbexlegacy_called;
@@ -74,6 +75,7 @@
 	sd->vbsd = shared;
 
 	shutdown_request_calls_left = -1;
+	shutdown_request_power_held = -1;
 	audio_looping_calls_left = 30;
 	vbtlk_retval = 1000;
 	vbexlegacy_called = 0;
@@ -106,6 +108,15 @@
 	else if (shutdown_request_calls_left > 0)
 		shutdown_request_calls_left--;
 
+	if (shutdown_request_power_held >= 0) {
+		/* Hold power button for 10 calls, then release for 10. */
+		if (shutdown_request_calls_left % 10 == 0)
+			shutdown_request_power_held
+				= !shutdown_request_power_held;
+		if (shutdown_request_power_held)
+			return VB_SHUTDOWN_REQUEST_POWER_BUTTON;
+	}
+
 	return 0;
 }
 
@@ -630,6 +641,26 @@
 		VBERROR_SHUTDOWN_REQUESTED,
 		"Shutdown requested by keyboard");
 
+	/* Ignore power button held on boot */
+	ResetMocks();
+	shutdown_request_calls_left = 100;
+	shutdown_request_power_held = 1;
+	shared->flags = VBSD_BOOT_REC_SWITCH_ON;
+	trust_ec = 1;
+	vbtlk_retval = VBERROR_NO_DISK_FOUND - VB_DISK_FLAG_REMOVABLE;
+	TEST_EQ(VbBootRecovery(&ctx),
+		VBERROR_SHUTDOWN_REQUESTED,
+		"Ignore power button held on boot");
+	TEST_EQ(screens_displayed[0], VB_SCREEN_RECOVERY_INSERT,
+		"  insert screen");
+	/*
+	 * shutdown_request_power_held holds power button for 10 calls, then
+	 * releases for 10, then holds again, so expect shutdown after 20:
+	 * 100 - 20 = 80.
+	 */
+	TEST_EQ(shutdown_request_calls_left, 80,
+		"  ignore held button");
+
 	/* Broken screen */
 	ResetMocks();
 	shutdown_request_calls_left = 100;
