diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
index e068797ff57ba030142c6f4e9dfe17cc172794fe..a9869863b44068260c510a6f19edf42f5e301de6 100644
--- a/dlls/kernel32/tests/thread.c
+++ b/dlls/kernel32/tests/thread.c
@@ -1218,10 +1218,12 @@ static void test_GetThreadSelectorEntry(void)
     SetLastError( 0xdeadbeef );
     ret = GetThreadSelectorEntry(GetCurrentThread(), 0xdeadbeef, &entry);
     ok(!ret, "GetThreadSelectorEntry(invalid) succeeded\n");
-    ok( GetLastError() == ERROR_GEN_FAILURE, "wrong error %u\n", GetLastError() );
+    ok( GetLastError() == ERROR_GEN_FAILURE
+        || GetLastError() == ERROR_INVALID_THREAD_ID /* 32-bit */, "wrong error %u\n", GetLastError() );
     ret = GetThreadSelectorEntry(GetCurrentThread(), ctx.SegDs + 0x100, &entry);
     ok(!ret, "GetThreadSelectorEntry(invalid) succeeded\n");
-    ok( GetLastError() == ERROR_GEN_FAILURE, "wrong error %u\n", GetLastError() );
+    ok( GetLastError() == ERROR_GEN_FAILURE
+        || GetLastError() == ERROR_NOACCESS /* 32-bit */, "wrong error %u\n", GetLastError() );
 
     memset(&entry, 0x11, sizeof(entry));
     ret = GetThreadSelectorEntry(GetCurrentThread(), ctx.SegFs, &entry);