diff --git a/firmware/lib/vboot_ui_legacy_wilco.c b/firmware/lib/vboot_ui_legacy_wilco.c
index 1471c9d..2971a1b 100644
--- a/firmware/lib/vboot_ui_legacy_wilco.c
+++ b/firmware/lib/vboot_ui_legacy_wilco.c
@@ -133,9 +133,17 @@
  * Prompt the user to confirm the serial number and write to memory
  */
 static vb2_error_t vb2_confirm_vendor_data_ui(struct vb2_context *ctx,
-					      char* data_value, VbScreenData *data)
+					      char* data_value)
 {
-	VbDisplayScreen(ctx, VB_SCREEN_CONFIRM_VENDOR_DATA, 1, data);
+	VbScreenData data = {
+		.vendor_data = {
+			.input_text = data_value,
+			.flags = 0,
+			.selected_index = 0,
+		}
+	};
+
+	VbDisplayScreen(ctx, VB_SCREEN_CONFIRM_VENDOR_DATA, 1, &data);
 	/* We'll loop until the user decides what to do */
 	do {
 		uint32_t key_confirm = VbExKeyboardRead();
@@ -149,23 +157,18 @@
 		case 0:
 			/* Nothing pressed */
 			break;
-		case VB_KEY_ESC:
-			/* Escape pressed - return to developer screen */
-			VB2_DEBUG("Confirm Vendor Data UI - user "
-				  "pressed Esc: exit to Developer screen\n");
-			return VB2_SUCCESS;
 		case VB_KEY_RIGHT:
 		case VB_KEY_LEFT:
-			data->vendor_data.selected_index =
-				data->vendor_data.selected_index ^ 1;
+			data.vendor_data.selected_index =
+				data.vendor_data.selected_index ^ 1;
 			VbDisplayScreen(ctx, VB_SCREEN_CONFIRM_VENDOR_DATA,
-					1, data);
+					1, &data);
 			VB2_DEBUG("selected_index:%d\n",
-				  data->vendor_data.selected_index);
+				  data.vendor_data.selected_index);
 			break;
 		case VB_KEY_ENTER:
 			/* Enter pressed - write vendor data */
-			if (data->vendor_data.selected_index == 0) {
+			if (data.vendor_data.selected_index == 0) {
 				VB2_DEBUG("Confirm Vendor Data UI - user "
 					  "selected YES: "
 					  "write vendor data (%s) to VPD\n",
@@ -195,7 +198,7 @@
 		default:
 			VB2_DEBUG("Confirm Vendor Data UI - pressed "
 				  "key %#x\n", key_confirm);
-			VbCheckDisplayKey(ctx, key_confirm, data);
+			VbCheckDisplayKey(ctx, key_confirm, &data);
 			break;
 		}
 		VbExSleepMs(KEY_DELAY_MS);
@@ -205,65 +208,27 @@
 
 vb2_error_t vb2_vendor_data_ui(struct vb2_context *ctx)
 {
+	vb2_error_t ret;
 	char data_value[VENDOR_DATA_LENGTH + 1];
 
-	VbScreenData data = {.vendor_data = {data_value, 0, 0}};
-	VbDisplayScreen(ctx, VB_COMPLETE_VENDOR_DATA, 0, NULL);
+	data_value[0] = '\0';
 
 	do {
-		uint32_t key_set = VbExKeyboardRead();
+		VB2_DEBUG("Vendor Data UI - Enter VD set screen\n");
 
-		if (vb2_want_shutdown(ctx, key_set)) {
-			VB2_DEBUG("Vendor Data UI - shutdown requested!\n");
-			return VBERROR_SHUTDOWN_REQUESTED;
-		}
+		ret = vb2_enter_vendor_data_ui(ctx, data_value);
+		if (ret)
+			return ret;
 
-		switch (key_set) {
-		case 0:
-			/* Nothing pressed - do nothing. */
-			break;
-		case VB_KEY_ESC:
-			/* ESC pressed - boot normally */
-			VB2_DEBUG("Vendor Data UI - boot normally\n");
+		/* Vendor data was not entered just return */
+		if (vendor_data_length(data_value) == 0)
 			return VB2_SUCCESS;
-			break;
-		case VB_KEY_ENTER:
-			data_value[0] = '\0';
-			do {
-				/* ENTER pressed -
-				   enter vendor data set screen */
-				VB2_DEBUG("Vendor Data UI - Enter VD set "
-					  "screen\n");
-				vb2_error_t ret = vb2_enter_vendor_data_ui(
-					ctx, data_value);
 
-				if (ret)
-					return ret;
-
-				/* Vendor data was not entered just return */
-				if (vendor_data_length(data_value) == 0) {
-					return VB2_SUCCESS;
-				}
-
-				/* Reset confirmation answer to YES */
-				data.vendor_data.selected_index = 0;
-
-				ret = vb2_confirm_vendor_data_ui(
-					ctx, data_value, &data);
-
-				if (ret)
-					return ret;
-
-				/* Break if vendor data confirmed */
-				if (data.vendor_data.selected_index == 0)
-					return VB2_SUCCESS;
-			} while (1);
-			break;
-		default:
-			break;
-        }
+		ret = vb2_confirm_vendor_data_ui(ctx, data_value);
+		if (ret)
+			return ret;
 	} while (1);
-    return VB2_SUCCESS;
+	return VB2_SUCCESS;
 }
 
 vb2_error_t vb2_check_diagnostic_key(struct vb2_context *ctx,
diff --git a/tests/vboot_legacy_clamshell_tests.c b/tests/vboot_legacy_clamshell_tests.c
index f31adcd..0d5594a 100644
--- a/tests/vboot_legacy_clamshell_tests.c
+++ b/tests/vboot_legacy_clamshell_tests.c
@@ -897,7 +897,6 @@
 	/* Enter set vendor data and reboot */
 	ResetMocks();
 	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ENTER;  /* Enter vendor data setting */
 	mock_keypress[1] = '4';
 	mock_keypress[2] = '3';
 	mock_keypress[3] = '2';
@@ -912,7 +911,6 @@
 	/* Enter set vendor data; don't confirm and esc */
 	ResetMocks();
 	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ENTER;  /* Enter vendor data setting */
 	mock_keypress[1] = '4';
 	mock_keypress[2] = '3';
 	mock_keypress[3] = '2';
@@ -929,7 +927,6 @@
 	/* Enter set vendor data; esc, don't confirm, and change last character */
 	ResetMocks();
 	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ENTER;  /* Enter vendor data setting */
 	mock_keypress[1] = '4';
 	mock_keypress[2] = '3';
 	mock_keypress[3] = '2';
@@ -949,7 +946,6 @@
 	/* Enter set vendor data; extra keys ignored */
 	ResetMocks();
 	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ENTER;  /* Enter vendor data setting */
 	mock_keypress[1] = '4';
 	mock_keypress[2] = '3';
 	mock_keypress[3] = '2';
@@ -965,7 +961,6 @@
 	/* Enter set vendor data; converts case */
 	ResetMocks();
 	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ENTER;  /* Enter vendor data setting */
 	mock_keypress[1] = 'a';
 	mock_keypress[2] = 'B';
 	mock_keypress[3] = 'Y';
@@ -980,7 +975,6 @@
 	/* Enter set vendor data; backspace works */
 	ResetMocks();
 	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ENTER;  /* Enter vendor data setting */
 	mock_keypress[1] = 'A';
 	mock_keypress[2] = 'B';
 	mock_keypress[3] = 'C';
@@ -999,7 +993,6 @@
 	/* Enter set vendor data; invalid chars don't print */
 	ResetMocks();
 	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ENTER;  /* Enter vendor data setting */
 	mock_keypress[1] = '4';
 	mock_keypress[2] = '-';
 	mock_keypress[3] = '^';
@@ -1019,7 +1012,6 @@
 	/* Enter set vendor data; invalid chars don't print with backspace */
 	ResetMocks();
 	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ENTER;  /* Enter vendor data setting */
 	mock_keypress[1] = '4';
 	mock_keypress[2] = '-';
 	mock_keypress[3] = VB_KEY_BACKSPACE;  /* Should delete 4 */
@@ -1037,7 +1029,6 @@
 	/* Enter set vendor data; backspace only doesn't underrun */
 	ResetMocks();
 	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ENTER;  /* Enter vendor data setting */
 	mock_keypress[1] = 'A';
 	mock_keypress[2] = VB_KEY_BACKSPACE;
 	mock_keypress[3] = VB_KEY_BACKSPACE;
@@ -1055,7 +1046,6 @@
 	/* Enter set vendor data; vowels not allowed after first char */
 	ResetMocks();
 	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ENTER;  /* Enter vendor data setting */
 	mock_keypress[1] = 'A';
 	mock_keypress[2] = 'A';
 	mock_keypress[3] = 'B';
@@ -1075,7 +1065,6 @@
 	/* Enter set vendor data; too short */
 	ResetMocks();
 	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ENTER;  /* Enter vendor data setting */
 	mock_keypress[1] = '1';
 	mock_keypress[2] = '2';
 	mock_keypress[3] = '3';
@@ -1092,7 +1081,6 @@
 	/* Enter set vendor data; esc from set screen */
 	ResetMocks();
 	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ENTER;  /* Enter vendor data setting */
 	mock_keypress[1] = VB_KEY_ESC;
 	vbtlk_expect_fixed = 1;
 	TEST_EQ(VbBootDeveloperLegacyClamshell(ctx), VB2_ERROR_MOCK,
@@ -1102,7 +1090,6 @@
 	/* Enter set vendor data; esc from set screen with tag */
 	ResetMocks();
 	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ENTER;  /* Enter vendor data setting */
 	mock_keypress[1] = '4';
 	mock_keypress[2] = '3';
 	mock_keypress[3] = '2';
@@ -1116,7 +1103,6 @@
 	/* Enter set vendor data; esc from confirm screen */
 	ResetMocks();
 	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ENTER;  /* Enter vendor data setting */
 	mock_keypress[1] = '4';
 	mock_keypress[2] = '3';
 	mock_keypress[3] = '2';
@@ -1128,15 +1114,6 @@
 		"Enter set vendor data esc from set screen");
 	TEST_EQ(set_vendor_data_called, 0, "  VbExSetVendorData() not called");
 
-	/* Escape from vendor data warning screen */
-	ResetMocks();
-	ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE;
-	mock_keypress[0] = VB_KEY_ESC;  /* Enter vendor data setting */
-	vbtlk_expect_fixed = 1;
-	TEST_EQ(VbBootDeveloperLegacyClamshell(ctx), VB2_ERROR_MOCK,
-		"Enter set vendor data esc, don't confirm, change last character");
-	TEST_EQ(set_vendor_data_called, 0, "  VbExSetVendorData() not called");
-
 	VB2_DEBUG("...done.\n");
 }
 
