--- old/src/share/classes/java/awt/EventDispatchThread.java 2014-01-28 05:08:46.000000000 +0400 +++ new/src/share/classes/java/awt/EventDispatchThread.java 2014-01-28 05:08:46.000000000 +0400 @@ -112,7 +112,8 @@ void pumpEventsForFilter(int id, Conditional cond, EventFilter filter) { addEventFilter(filter); doDispatch = true; - while (doDispatch && !isInterrupted() && cond.evaluate()) { + while ((doDispatch || getEventQueue().peekEvent() != null) + && !isInterrupted() && cond.evaluate()) { pumpOneEventForFilters(id); } removeEventFilter(filter);