If an applet has not run in an attached client JVM for a while, we should shut it down. This can probably be implemented reasonably easily solely on the client JVM side. A background timer thread can be added to the PluginMain class. The timer is reset and started when the number of running applets goes to zero, and there are no disconnected applets. The timer is stopped whenever an applet is started. If the timer reaches its timeout value, the process tears itself down. The browser-side code will deal correctly with this situation.