diff -r 2845a0e2fa9b AppKit/NSApplication.m --- a/AppKit/NSApplication.m Mon Feb 07 11:48:12 2011 -0500 +++ b/AppKit/NSApplication.m Mon Feb 28 10:14:52 2011 -0700 @@ -748,8 +748,10 @@ NSAutoreleasePool *pool=[NSAutoreleasePool new]; NSEvent *event=[self nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate date] inMode:NSModalPanelRunLoopMode dequeue:YES]; - if(event==nil) + if(event==nil) { + [pool release]; break; + } NSWindow *window=[event window]; diff -r 2845a0e2fa9b AppKit/Win32.subproj/Win32Display.m --- a/AppKit/Win32.subproj/Win32Display.m Mon Feb 07 11:48:12 2011 -0500 +++ b/AppKit/Win32.subproj/Win32Display.m Mon Feb 28 10:14:52 2011 -0700 @@ -390,7 +390,8 @@ [[NSRunLoop currentRunLoop] addInputSource:_eventInputSource forMode:mode]; [self stopWaitCursor]; - while([untilDate timeIntervalSinceNow]>0){ + while (([untilDate timeIntervalSinceNow]>0) || + ([_eventQueue count] > 0)) { result=[super nextEventMatchingMask:mask|NSPlatformSpecificDisplayMask untilDate:untilDate inMode:mode dequeue:dequeue]; if([result type]==NSPlatformSpecificDisplayEvent){