diff --git a/router/java/src/net/i2p/router/client/ClientConnectionRunner.java b/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
index 1c4fb2fd5e50a2da8488cbae50aba4335a0d58b1..aa930e140c773e02da725480528af73c0d693a79 100644
--- a/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
+++ b/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
@@ -237,17 +237,32 @@ public class ClientConnectionRunner {
             _context.jobQueue().addJob(state.getOnGranted());
     }
     
+    /**
+     *  Send a DisconnectMessage and log with level Log.CRIT.
+     *  This is always bad.
+     *  See ClientMessageEventListener.handleCreateSession()
+     *  for why we don't send a SessionStatusMessage when we do this.
+     */
     void disconnectClient(String reason) {
-        if (_log.shouldLog(Log.CRIT))
-            _log.log(Log.CRIT, "Disconnecting the client (" 
+        disconnectClient(reason, Log.CRIT);
+    }
+
+    /**
+     * @param logLevel e.g. Log.WARN
+     * @since 0.8.2
+     */
+    void disconnectClient(String reason, int logLevel) {
+        if (_log.shouldLog(logLevel))
+            _log.log(logLevel, "Disconnecting the client (" 
                      + _config
-                     + ": " + reason);
+                     + ") : " + reason);
         DisconnectMessage msg = new DisconnectMessage();
         msg.setReason(reason);
         try {
             doSend(msg);
         } catch (I2CPMessageException ime) {
-            _log.error("Error writing out the disconnect message: " + ime);
+            if (_log.shouldLog(Log.WARN))
+                _log.warn("Error writing out the disconnect message: " + ime);
         }
         stopRunning();
     }
diff --git a/router/java/src/net/i2p/router/client/ClientManager.java b/router/java/src/net/i2p/router/client/ClientManager.java
index cf7fbf931336de1a08b5a91847043a19ed45b177..7d866ab0b650e961ecd763be04d41434721291b4 100644
--- a/router/java/src/net/i2p/router/client/ClientManager.java
+++ b/router/java/src/net/i2p/router/client/ClientManager.java
@@ -113,7 +113,7 @@ public class ClientManager {
         }
         for (Iterator<ClientConnectionRunner> iter = runners.iterator(); iter.hasNext(); ) {
             ClientConnectionRunner runner = iter.next();
-            runner.stopRunning();
+            runner.disconnectClient("Router shutdown", Log.WARN);
         }
     }