--- old/src/share/classes/java/awt/EventQueue.java 2013-09-15 19:29:17.000000000 +0400 +++ new/src/share/classes/java/awt/EventQueue.java 2013-09-15 19:29:17.000000000 +0400 @@ -690,7 +690,10 @@ final Object src = event.getSource(); final PrivilegedAction action = new PrivilegedAction() { public Void run() { - if (fwDispatcher == null) { + // In case fwDispatcher is installed and we're already on the + // dispatch thread (e.g. performing DefaultKeyboardFocusManager.sendMessage), + // dispatch the event straight away. + if (fwDispatcher == null || isDispatchThreadImpl()) { dispatchEventImpl(event, src); } else { fwDispatcher.scheduleDispatch(new Runnable() {