diff --git a/dlls/user32/tests/dialog.c b/dlls/user32/tests/dialog.c
index 24aced8e1923069699b6356c154ff7abd8fc9b49..f2bc30ff9215fa7917bfd7c47317c411125dc5fc 100644
--- a/dlls/user32/tests/dialog.c
+++ b/dlls/user32/tests/dialog.c
@@ -1851,7 +1851,10 @@ static void test_DialogBoxParam(void)
     SetLastError(0xdeadbeef);
     ret = DialogBoxParamA(GetModuleHandleA(NULL), "TEST_DIALOG_INVALID_CLASS", 0, DestroyDlgWinProc, 0);
     ok(ret == -1, "DialogBoxParamA returned %ld, expected -1\n", ret);
-    ok(GetLastError() == 0, "got %d\n", GetLastError());
+    todo_wine
+    ok(GetLastError() == ERROR_CANNOT_FIND_WND_CLASS ||
+       broken(GetLastError() == ERROR_SUCCESS) /* < win10 21H1 */,
+       "got %u, expected ERROR_CANNOT_FIND_WND_CLASS\n", GetLastError());
 
     SetLastError(0xdeadbeef);
     ret = DefDlgProcA(0, WM_ERASEBKGND, 0, 0);