=== modified file 'src/com/goldencode/p2j/ui/client/gui/driver/swing/SwingEmulatedWindow.java' --- src/com/goldencode/p2j/ui/client/gui/driver/swing/SwingEmulatedWindow.java 2015-10-24 19:51:34 +0000 +++ src/com/goldencode/p2j/ui/client/gui/driver/swing/SwingEmulatedWindow.java 2015-11-03 08:10:37 +0000 @@ -267,7 +267,11 @@ if (toOS) { // if focus is lost to a non-4GL window, the titlebar needs to be aware of this - ThinClient.getInstance().postOSEvent(new WindowActivated(window, false, toOS)); + ThinClient tc = ThinClient.getInstance(); + if (tc != null) + { + ThinClient.getInstance().postOSEvent(new WindowActivated(window, false, toOS)); + } } } } === modified file 'src/com/goldencode/p2j/ui/client/gui/driver/swing/SwingGuiDriver.java' --- src/com/goldencode/p2j/ui/client/gui/driver/swing/SwingGuiDriver.java 2015-10-22 23:14:19 +0000 +++ src/com/goldencode/p2j/ui/client/gui/driver/swing/SwingGuiDriver.java 2015-11-03 07:41:59 +0000 @@ -78,6 +78,8 @@ import javax.swing.*; +import sun.awt.AppContext; + import java.lang.reflect.*; import java.io.*; import java.util.*; @@ -102,7 +104,14 @@ { protected SwingKeyboardReader initialValue() { - return new WinKeyboardReader(); + AppContext appContext = AppContext.getAppContext(); + Object keyboardReader = appContext.get(WinKeyboardReader.class); + if (keyboardReader == null) + { + keyboardReader = new WinKeyboardReader(); + appContext.put(WinKeyboardReader.class, keyboardReader); + } + return (WinKeyboardReader) keyboardReader; }; };