win32ss/user/ntuser/winpos.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/win32ss/user/ntuser/winpos.c b/win32ss/user/ntuser/winpos.c index eba590fad13..80e4cc1c502 100644 --- a/win32ss/user/ntuser/winpos.c +++ b/win32ss/user/ntuser/winpos.c @@ -1392,9 +1392,13 @@ WinPosDoOwnedPopups(PWND Window, HWND hWndInsertAfter) if (List[i] == Owner) { - if (i > 0) hWndInsertAfter = List[i-1]; - else hWndInsertAfter = topmost ? HWND_TOPMOST : HWND_TOP; - break; + if (i > 0) + { + if (List[i-1] != Window->head.h) + hWndInsertAfter = List[i-1]; + } + else hWndInsertAfter = topmost ? HWND_TOPMOST : HWND_TOP; + break; } if (hWndInsertAfter == HWND_TOP || hWndInsertAfter == HWND_NOTOPMOST)