diff --git a/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java b/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java
index cf354d68208c7035c330e5d42561cd99ad707865..026fa1895ec057cb22add83ff26cd2a8658d9991 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java
@@ -440,7 +440,7 @@ public class PluginStarter implements Runnable {
         }
 
         // start console webapps in console/webapps
-        ContextHandlerCollection server = WebAppStarter.getConsoleServer();
+        ContextHandlerCollection server = WebAppStarter.getConsoleServer(ctx);
         if (server != null) {
             File consoleDir = new File(pluginDir, "console");
             Properties wprops = RouterConsoleRunner.webAppProperties(consoleDir.getAbsolutePath());
@@ -951,7 +951,7 @@ public class PluginStarter implements Runnable {
             Iterator <String> it = pluginWars.get(pluginName).iterator();
             while(it.hasNext() && !isWarRunning) {
                 String warName = it.next();
-                if(WebAppStarter.isWebAppRunning(warName)) {
+                if(WebAppStarter.isWebAppRunning(ctx, warName)) {
                     isWarRunning = true;
                 }
             }
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java
index 46da0de60b33ad8e5cf90ba4f601dcccc24ab03f..7410e7140d78a0a5eb5b0f914f29ed7794f03fde 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java
@@ -24,6 +24,7 @@ import java.util.StringTokenizer;
 import java.util.concurrent.LinkedBlockingQueue;
 
 import net.i2p.I2PAppContext;
+import net.i2p.app.ClientApp;
 import net.i2p.app.ClientAppManager;
 import net.i2p.app.ClientAppState;
 import static net.i2p.app.ClientAppState.*;
@@ -100,7 +101,7 @@ public class RouterConsoleRunner implements RouterApp {
     private final RouterContext _context;
     private final ClientAppManager _mgr;
     private volatile ClientAppState _state = UNINITIALIZED;
-    private static Server _server;
+    private Server _server;
     private static ScheduledExecutorScheduler _jettyTimer;
     private String _listenPort;
     private String _listenHost;
@@ -116,6 +117,7 @@ public class RouterConsoleRunner implements RouterApp {
         // default changed from 0 (forever) in Jetty 6 to 60*1000 ms in Jetty 7
         authenticator.setMaxNonceAge(7*24*60*60*1000L);
     }
+    private static final String NAME = "console";
     public static final String JETTY_REALM = "i2prouter";
     private static final String JETTY_ROLE = "routerAdmin";
     public static final String PROP_CONSOLE_PW = "routerconsole.auth." + JETTY_REALM;
@@ -264,7 +266,7 @@ public class RouterConsoleRunner implements RouterApp {
 
     /** @since 0.9.4 */
     public String getName() {
-        return "console";
+        return NAME;
     }
 
     /** @since 0.9.4 */
@@ -281,14 +283,25 @@ public class RouterConsoleRunner implements RouterApp {
     }
 
     /**
-     *  SInce _server is now static
+     *  To get to Jetty
      *  @return may be null or stopped perhaps
      *  @since Jetty 6 since it doesn't have Server.getServers()
      */
-    static Server getConsoleServer() {
+    synchronized Server getConsoleServer() {
         return _server;
     }
 
+    /**
+     *  To get to Jetty
+     *  @return may be null or stopped perhaps
+     *  @since 0.9.38
+     */
+    static Server getConsoleServer(I2PAppContext ctx) {
+        ClientApp app = ctx.clientAppManager().getRegisteredApp(NAME);
+        return (app != null) ? ((RouterConsoleRunner)app).getConsoleServer() : null;
+    }
+
+
     /** @since 0.8.13, moved from LogsHelper in 0.9.33 */
     public static String jettyVersion() {
         return Server.getVersion();
@@ -1113,7 +1126,7 @@ public class RouterConsoleRunner implements RouterApp {
                 String app = name.substring(PREFIX.length(), name.lastIndexOf(ENABLED));
                 if (ROUTERCONSOLE.equals(app))
                     continue;
-                if (WebAppStarter.isWebAppRunning(app)) {
+                if (WebAppStarter.isWebAppRunning(_context, app)) {
                     try {
                         WebAppStarter.stopWebApp(_context, app);
                     } catch (Throwable t) { t.printStackTrace(); }
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/WebAppStarter.java b/apps/routerconsole/java/src/net/i2p/router/web/WebAppStarter.java
index bfaf9495f4f205b68f05e5381e4815d18d8d5206..94ac58d97dd0c0da0789806daebe3d7ab2da9af8 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/WebAppStarter.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/WebAppStarter.java
@@ -6,6 +6,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
+import net.i2p.I2PAppContext;
 import net.i2p.router.RouterContext;
 import net.i2p.util.FileUtil;
 import net.i2p.util.PortMapper;
@@ -150,7 +151,7 @@ public class WebAppStarter {
      *  @since public since 0.9.33, was package private
      */
     public static void stopWebApp(RouterContext ctx, String appName) {
-        ContextHandler wac = getWebApp(appName);
+        ContextHandler wac = getWebApp(ctx, appName);
         if (wac == null)
             return;
         ctx.portMapper().unregister(appName);
@@ -158,7 +159,7 @@ public class WebAppStarter {
             // not graceful is default in Jetty 6?
             wac.stop();
         } catch (Exception ie) {}
-        ContextHandlerCollection server = getConsoleServer();
+        ContextHandlerCollection server = getConsoleServer(ctx);
         if (server == null)
             return;
         try {
@@ -173,16 +174,16 @@ public class WebAppStarter {
      *
      *  @since public since 0.9.33; was package private
      */
-    public static boolean isWebAppRunning(String appName) {
-        ContextHandler wac = getWebApp(appName);
+    public static boolean isWebAppRunning(I2PAppContext ctx, String appName) {
+        ContextHandler wac = getWebApp(ctx, appName);
         if (wac == null)
             return false;
         return wac.isStarted();
     }
     
     /** @since Jetty 6 */
-    static ContextHandler getWebApp(String appName) {
-        ContextHandlerCollection server = getConsoleServer();
+    static ContextHandler getWebApp(I2PAppContext ctx, String appName) {
+        ContextHandlerCollection server = getConsoleServer(ctx);
         if (server == null)
             return null;
         Handler handlers[] = server.getHandlers();
@@ -203,8 +204,8 @@ public class WebAppStarter {
      *  See comments in ConfigClientsHandler
      *  @since public since 0.9.33, was package private
      */
-    public static ContextHandlerCollection getConsoleServer() {
-        Server s = RouterConsoleRunner.getConsoleServer();
+    public static ContextHandlerCollection getConsoleServer(I2PAppContext ctx) {
+        Server s = RouterConsoleRunner.getConsoleServer(ctx);
         if (s == null)
             return null;
         Handler h = s.getChildHandlerByClass(ContextHandlerCollection.class);
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java
index 798c96066d2ddfe8d4a80a9f860ed55b4882eda6..35cbc9ec4ec1139e065434ebf68ec7ab8a035a49 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigClientsHandler.java
@@ -387,7 +387,7 @@ public class ConfigClientsHandler extends FormHandler {
      * requested and add the .war to that one
      */
     private void startWebApp(String app) {
-        ContextHandlerCollection s = WebAppStarter.getConsoleServer();
+        ContextHandlerCollection s = WebAppStarter.getConsoleServer(_context);
         if (s != null) {
                     try {
                         File path = new File(_context.getBaseDir(), "webapps");
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java
index 7be834986f8c438b3ca9df666bdd403aa9ac7021..0b44f55e0bf518616a60cf8929c81a4bd75b9ec5 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigClientsHelper.java
@@ -215,7 +215,7 @@ public class ConfigClientsHelper extends HelperBase {
             if (name.startsWith(RouterConsoleRunner.PREFIX) && name.endsWith(RouterConsoleRunner.ENABLED)) {
                 String app = name.substring(RouterConsoleRunner.PREFIX.length(), name.lastIndexOf(RouterConsoleRunner.ENABLED));
                 String val = props.getProperty(name);
-                boolean isRunning = WebAppStarter.isWebAppRunning(app);
+                boolean isRunning = WebAppStarter.isWebAppRunning(_context, app);
                 String desc;
                 // use descriptions already tagged elsewhere
                 if (app.equals("routerconsole"))