A problem with my changes to give win32 proper messages loops (applied as change #33255) has been identified on Vista. The patch below fixes this (patch against blead@33505). I haven't checked it out on other win32 OS, but is closer to what was in win32_async_check() before I got my hands on it. I can't claim to understand the difference in behaviour on Vista to other OS, but the proposed change is more consistent with the MS documentation for PeekMessage(). I believe that with this change bug #51674 can be closed. Regards, Rob. --- win32.c.orig Mon Feb 25 23:17:32 2008 +++ win32.c Thu Mar 13 19:16:22 2008 @@ -2127,8 +2127,7 @@ win32_async_check(pTHX) * Perl is calling win32_waitpid() inside a GUI application and the GUI * is generating messages before the process terminated. */ - while (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE|PM_NOYIELD)) - /* keep going */ ; + PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE|PM_NOYIELD); /* Above or other stuff may have set a signal flag */ if (PL_sig_pending)Thread Next