diff --git a/win32ss/user/ntuser/window.c b/win32ss/user/ntuser/window.c index 2bdc64f6be9..142815a6884 100644 --- a/win32ss/user/ntuser/window.c +++ b/win32ss/user/ntuser/window.c @@ -2953,7 +2953,7 @@ BOOLEAN co_UserDestroyWindow(PVOID Object) * Check if this window is the Shell's Desktop Window. If so set hShellWindow to NULL */ - if ((ti != NULL) && (ti->pDeskInfo != NULL)) + if (ti->pDeskInfo != NULL) { if (ti->pDeskInfo->hShellWindow == hWnd) { @@ -2987,9 +2987,10 @@ BOOLEAN co_UserDestroyWindow(PVOID Object) /* Send destroy messages */ IntSendDestroyMsg(UserHMGetHandle(Window)); - // Destroy the default IME window if necessary + /* Destroy the default IME window if necessary */ if (IS_IMM_MODE() && !(ti->TIF_flags & TIF_INCLEANUP) && - ti->spwndDefaultIme && !IS_WND_IMELIKE(Window) && !(Window->state & WNDS_DESTROYED)) + ti->spwndDefaultIme && (ti->spwndDefaultIme != Window) && + !(Window->state & WNDS_DESTROYED) && !IS_WND_IMELIKE(Window)) { if (IS_WND_CHILD(Window)) {