diff --git a/dlls/imm32/tests/imm32.c b/dlls/imm32/tests/imm32.c index 9ab55f337b2..eb544bb6176 100644 --- a/dlls/imm32/tests/imm32.c +++ b/dlls/imm32/tests/imm32.c @@ -640,7 +640,10 @@ static void test_ImmThreads(void) ImmReleaseContext(hwnd,himc); SendMessageA(threadinfo.hwnd, WM_CLOSE, 0, 0); - TerminateThread(hThread, 1); + rc = PostThreadMessageA(dwThreadId, WM_QUIT, 1, 0); + ok(rc == 1, "PostThreadMessage should succeed\n"); + WaitForSingleObject(hThread, INFINITE); + CloseHandle(hThread); himc = ImmGetContext(GetDesktopWindow()); ok(himc == NULL, "Should not be able to get himc from other process window\n"); @@ -842,6 +845,7 @@ static void test_ImmDefaultHwnd(void) WaitForSingleObject(thread, INFINITE); ok(thread_ime_wnd != def1, "thread_ime_wnd == def1\n"); ok(!IsWindow(thread_ime_wnd), "thread_ime_wnd was not destroyed\n"); + CloseHandle(thread); ImmReleaseContext(hwnd, imc1); ImmReleaseContext(hwnd, imc3);