Index: C:/backyard/activemq/activemq-core/src/main/java/org/apache/activemq/transport/InactivityMonitor.java =================================================================== --- C:/backyard/activemq/activemq-core/src/main/java/org/apache/activemq/transport/InactivityMonitor.java (revision 586034) +++ C:/backyard/activemq/activemq-core/src/main/java/org/apache/activemq/transport/InactivityMonitor.java (working copy) @@ -148,11 +148,18 @@ } } - public void onException(IOException error) { - if (monitorStarted.get()) { - stopMonitorThreads(); - } - getTransportListener().onException(error); + public void onException(final IOException error) { + Runnable stopper = new Runnable() { + + public void run() { + if (monitorStarted.get()) { + stopMonitorThreads(); + } + getTransportListener().onException(error); + } + + }; + new Thread(stopper, "InactivityMonitorStopper").start(); } private synchronized void startMonitorThreads() throws IOException {