diff --git a/apps/routerconsole/jsp/certs.jsp b/apps/routerconsole/jsp/certs.jsp
index 37d6607b2da9befacd14d43d0088b542bc532c3c..c7658af96456873d2f122f5cd9cf835294106cb3 100644
--- a/apps/routerconsole/jsp/certs.jsp
+++ b/apps/routerconsole/jsp/certs.jsp
@@ -11,7 +11,7 @@
 <%@include file="summary.jsi" %><h1><%=intl._t("Certificates")%></h1>
 <div class="main" id="certs">
 <jsp:useBean class="net.i2p.router.web.helpers.CertHelper" id="certhelper" scope="request" />
-<jsp:setProperty name="certhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="certhelper" property="contextId" value="<%=i2pcontextId%>" />
 <% certhelper.storeWriter(out); %>
 <jsp:getProperty name="certhelper" property="summary" />
 </div></body></html>
diff --git a/apps/routerconsole/jsp/config.jsp b/apps/routerconsole/jsp/config.jsp
index 7b478d7dd46711a9d3477661de1156f843b3fd9d..6aa231ecc4420d1b65c1a2262e5deda14a8707f8 100644
--- a/apps/routerconsole/jsp/config.jsp
+++ b/apps/routerconsole/jsp/config.jsp
@@ -13,7 +13,7 @@
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigNetHelper" id="nethelper" scope="request" />
-<jsp:setProperty name="nethelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="nethelper" property="contextId" value="<%=i2pcontextId%>" />
 <h1><%=intl._t("I2P Bandwidth Configuration")%></h1>
 <div class="main" id="config_bandwidth">
  <%@include file="confignav.jsi" %>
diff --git a/apps/routerconsole/jsp/configadvanced.jsp b/apps/routerconsole/jsp/configadvanced.jsp
index 9b2456aff0352e7a0e0212b5a912ef8ba5573b1c..5e009544d12e35693345bbb370211fd1bfa4295d 100644
--- a/apps/routerconsole/jsp/configadvanced.jsp
+++ b/apps/routerconsole/jsp/configadvanced.jsp
@@ -13,7 +13,7 @@
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigAdvancedHelper" id="advancedhelper" scope="request" />
-<jsp:setProperty name="advancedhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="advancedhelper" property="contextId" value="<%=i2pcontextId%>" />
 
 <h1><%=intl._t("I2P Advanced Configuration")%></h1>
 <div class="main" id="config_advanced">
diff --git a/apps/routerconsole/jsp/configclients.jsp b/apps/routerconsole/jsp/configclients.jsp
index 4be2a095801af4a3323f847aa1e413fd94e02ec1..90cc7ca9b39b5f077059d89aa4f5b7160598d2c9 100644
--- a/apps/routerconsole/jsp/configclients.jsp
+++ b/apps/routerconsole/jsp/configclients.jsp
@@ -18,7 +18,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHelper" id="clientshelper" scope="request" />
-<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="clientshelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
 <h1><%=intl._t("I2P Client Configuration")%></h1>
 <div class="main" id="config_clients">
diff --git a/apps/routerconsole/jsp/configfamily.jsp b/apps/routerconsole/jsp/configfamily.jsp
index 534e2dabd62424f2b6215f56d38d855fdde25bcc..46b683a52fe9710307c3f90378c3630bc5573496 100644
--- a/apps/routerconsole/jsp/configfamily.jsp
+++ b/apps/routerconsole/jsp/configfamily.jsp
@@ -12,7 +12,7 @@
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigFamilyHelper" id="familyHelper" scope="request" />
-<jsp:setProperty name="familyHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="familyHelper" property="contextId" value="<%=i2pcontextId%>" />
 <h1><%=intl._t("I2P Router Family Configuration")%></h1>
 <div class="main" id="config_family">
 <%@include file="confignav.jsi" %>
diff --git a/apps/routerconsole/jsp/confighome.jsp b/apps/routerconsole/jsp/confighome.jsp
index b210e137c25b894e9b82b52ecd8d1a00f2e1e1d0..877a6852991ec2f18b36b82f2ba55d1dae092ded 100644
--- a/apps/routerconsole/jsp/confighome.jsp
+++ b/apps/routerconsole/jsp/confighome.jsp
@@ -24,7 +24,7 @@ input.default {
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigHomeHandler" id="formhandler" scope="request" />
 <%@include file="formhandler.jsi" %>
 <jsp:useBean class="net.i2p.router.web.helpers.HomeHelper" id="homehelper" scope="request" />
-<jsp:setProperty name="homehelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="homehelper" property="contextId" value="<%=i2pcontextId%>" />
 
 <h3 class="tabletitle"><%=intl._t("Default Home Page")%></h3>
 <form action="" method="POST">
diff --git a/apps/routerconsole/jsp/configi2cp.jsp b/apps/routerconsole/jsp/configi2cp.jsp
index 32f279e45a5fc54611d1be5cab66d10d9a288ae0..380aaaa676c21ef4f9795f745b8805a15022eb15 100644
--- a/apps/routerconsole/jsp/configi2cp.jsp
+++ b/apps/routerconsole/jsp/configi2cp.jsp
@@ -18,7 +18,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHelper" id="clientshelper" scope="request" />
-<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="clientshelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
 <h1><%=intl._t("I2P Client Configuration")%></h1>
 <div class="main" id="config_i2cp">
diff --git a/apps/routerconsole/jsp/configkeyring.jsp b/apps/routerconsole/jsp/configkeyring.jsp
index ad3d7fea6f11f0bb4345e744f8e3dea85e5f230b..ccd100975041928ac84e7067523a478f96196f11 100644
--- a/apps/routerconsole/jsp/configkeyring.jsp
+++ b/apps/routerconsole/jsp/configkeyring.jsp
@@ -17,7 +17,7 @@
  <jsp:useBean class="net.i2p.router.web.helpers.ConfigKeyringHandler" id="formhandler" scope="request" />
 <%@include file="formhandler.jsi" %>
  <jsp:useBean class="net.i2p.router.web.helpers.ConfigKeyringHelper" id="keyringhelper" scope="request" />
- <jsp:setProperty name="keyringhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="keyringhelper" property="contextId" value="<%=i2pcontextId%>" />
 <p id="keyringhelp" class="infohelp">
  <%=intl._t("The router keyring is used to decrypt encrypted leaseSets.")%>
  <%=intl._t("The keyring may contain keys for local or remote encrypted destinations.")%></p>
diff --git a/apps/routerconsole/jsp/configlogging.jsp b/apps/routerconsole/jsp/configlogging.jsp
index 2758dcc45b5d795b9fa97b9c713c19151cebd321..c374032d2a21adea0041b30a770efd4027a2965e 100644
--- a/apps/routerconsole/jsp/configlogging.jsp
+++ b/apps/routerconsole/jsp/configlogging.jsp
@@ -10,7 +10,7 @@
 <%@include file="summaryajax.jsi" %>
 </head><body onload="initAjax()">
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigLoggingHelper" id="logginghelper" scope="request" />
-<jsp:setProperty name="logginghelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="logginghelper" property="contextId" value="<%=i2pcontextId%>" />
 
 <%@include file="summary.jsi" %>
 <h1><%=intl._t("I2P Logging Configuration")%></h1>
diff --git a/apps/routerconsole/jsp/confignav.jsi b/apps/routerconsole/jsp/confignav.jsi
index b550f81b3f6b6dc47c571f6afa7dd6f2795c1554..776f1e9729dc89b480b6ee7d74a36bb83ff59a84 100644
--- a/apps/routerconsole/jsp/confignav.jsi
+++ b/apps/routerconsole/jsp/confignav.jsi
@@ -4,7 +4,7 @@
      */
 %>
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigNavHelper" id="navHelper" scope="request" />
-<jsp:setProperty name="navHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="navHelper" property="contextId" value="<%=i2pcontextId%>" />
 <% navHelper.storeWriter(out); %>
 <div class="confignav" id="confignav">
 <%
diff --git a/apps/routerconsole/jsp/confignet.jsp b/apps/routerconsole/jsp/confignet.jsp
index bee242c24d9883637d031567c4283a2fd47b3d95..d37277ba8f87162464662832eaf441d59d866f9d 100644
--- a/apps/routerconsole/jsp/confignet.jsp
+++ b/apps/routerconsole/jsp/confignet.jsp
@@ -12,7 +12,7 @@
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigNetHelper" id="nethelper" scope="request" />
-<jsp:setProperty name="nethelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="nethelper" property="contextId" value="<%=i2pcontextId%>" />
 <h1><%=intl._t("I2P Network Configuration")%></h1>
 <div class="main" id="config_network">
  <%@include file="confignav.jsi" %>
diff --git a/apps/routerconsole/jsp/configpeer.jsp b/apps/routerconsole/jsp/configpeer.jsp
index 1ef7f5413325859fe3e564c55ad27bc189d679be..b433027e227139bcd45c3528b7d4680e8601600e 100644
--- a/apps/routerconsole/jsp/configpeer.jsp
+++ b/apps/routerconsole/jsp/configpeer.jsp
@@ -14,7 +14,7 @@
  <jsp:useBean class="net.i2p.router.web.helpers.ConfigPeerHandler" id="formhandler" scope="request" />
 <%@include file="formhandler.jsi" %>
  <jsp:useBean class="net.i2p.router.web.helpers.ConfigPeerHelper" id="peerhelper" scope="request" />
- <jsp:setProperty name="peerhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="peerhelper" property="contextId" value="<%=i2pcontextId%>" />
  <% String peer = "";
     if (request.getParameter("peer") != null)
         peer = net.i2p.data.DataHelper.stripHTML(request.getParameter("peer"));  // XSS
@@ -63,7 +63,7 @@
  </form>
  <a name="banlist"> </a><h3 id="bannedpeers"><%=intl._t("Banned Peers")%></h3>
  <jsp:useBean class="net.i2p.router.web.helpers.ProfilesHelper" id="profilesHelper" scope="request" />
- <jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="profilesHelper" property="contextId" value="<%=i2pcontextId%>" />
  <% profilesHelper.storeWriter(out); %>
  <jsp:getProperty name="profilesHelper" property="banlistSummary" />
  <h3 class="tabletitle"><%=intl._t("Banned IPs")%></h3>
diff --git a/apps/routerconsole/jsp/configplugins.jsp b/apps/routerconsole/jsp/configplugins.jsp
index ae9d8c54fa81ebf9dfdfe29af5d9941b91b9906e..27adbd63259e4a2a9ccb33c48106ea99335d9191 100644
--- a/apps/routerconsole/jsp/configplugins.jsp
+++ b/apps/routerconsole/jsp/configplugins.jsp
@@ -18,7 +18,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHelper" id="clientshelper" scope="request" />
-<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="clientshelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
 <h1><%=intl._t("Plugin Configuration")%></h1>
 <div class="main" id="config_plugins">
diff --git a/apps/routerconsole/jsp/configreseed.jsp b/apps/routerconsole/jsp/configreseed.jsp
index af24e47c4a06f08a2f67e2ee233a17be5cec8d9c..728d3862bfe057f83588b46068b90d6c28a25e2b 100644
--- a/apps/routerconsole/jsp/configreseed.jsp
+++ b/apps/routerconsole/jsp/configreseed.jsp
@@ -12,7 +12,7 @@
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigReseedHelper" id="reseedHelper" scope="request" />
-<jsp:setProperty name="reseedHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="reseedHelper" property="contextId" value="<%=i2pcontextId%>" />
 <h1><%=intl._t("I2P Reseeding Configuration")%></h1>
 <div class="main" id="config_reseed">
 <%@include file="confignav.jsi" %>
diff --git a/apps/routerconsole/jsp/configsidebar.jsp b/apps/routerconsole/jsp/configsidebar.jsp
index 5f01cf1b70078d3f74419cf2deb28d99aa39d186..83b10a47e36aac6fc0c1c826372c9116cae5116a 100644
--- a/apps/routerconsole/jsp/configsidebar.jsp
+++ b/apps/routerconsole/jsp/configsidebar.jsp
@@ -27,7 +27,7 @@ input.default {
     formhandler.setMovingAction();
 %>
 <jsp:useBean class="net.i2p.router.web.helpers.SummaryHelper" id="summaryhelper" scope="request" />
-<jsp:setProperty name="summaryhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="summaryhelper" property="contextId" value="<%=i2pcontextId%>" />
 
 <h3 class="tabletitle"><%=intl._t("Refresh Interval")%></h3>
 <form action="" method="POST">
diff --git a/apps/routerconsole/jsp/configstats.jsp b/apps/routerconsole/jsp/configstats.jsp
index f2d69e3bc7af19c6227b79b16560238ce0ffca9f..ab6ddaaebd623a959d14c2e2bde67700eb38d387 100644
--- a/apps/routerconsole/jsp/configstats.jsp
+++ b/apps/routerconsole/jsp/configstats.jsp
@@ -69,7 +69,7 @@ function toggleAll(category)
  <jsp:useBean class="net.i2p.router.web.helpers.ConfigStatsHandler" id="formhandler" scope="request" />
 <%@include file="formhandler.jsi" %>
  <jsp:useBean class="net.i2p.router.web.helpers.ConfigStatsHelper" id="statshelper" scope="request" />
- <jsp:setProperty name="statshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="statshelper" property="contextId" value="<%=i2pcontextId%>" />
  <div class="configure">
  <form id="statsForm" name="statsForm" action="" method="POST">
  <input type="hidden" name="action" value="foo" >
diff --git a/apps/routerconsole/jsp/configtunnels.jsp b/apps/routerconsole/jsp/configtunnels.jsp
index 0f418ea0630b47c1a011b9831e539fdc499c8f74..7673dd202a908f9111432e8e3def21f88070c6c8 100644
--- a/apps/routerconsole/jsp/configtunnels.jsp
+++ b/apps/routerconsole/jsp/configtunnels.jsp
@@ -12,7 +12,7 @@
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigTunnelsHelper" id="tunnelshelper" scope="request" />
-<jsp:setProperty name="tunnelshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="tunnelshelper" property="contextId" value="<%=i2pcontextId%>" />
 <h1><%=intl._t("I2P Tunnel Configuration")%></h1>
 <div class="main" id="config_tunnels">
  <%@include file="confignav.jsi" %>
diff --git a/apps/routerconsole/jsp/configui.jsp b/apps/routerconsole/jsp/configui.jsp
index deb6843c92d52c5d4950bb9ddf3ffd05549b79ed..3f8b3a6e8ff5dc55d13a8d331177d15d93b21438 100644
--- a/apps/routerconsole/jsp/configui.jsp
+++ b/apps/routerconsole/jsp/configui.jsp
@@ -20,7 +20,7 @@ input.default {
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigUIHelper" id="uihelper" scope="request" />
-<jsp:setProperty name="uihelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="uihelper" property="contextId" value="<%=i2pcontextId%>" />
 
 <h1><%=uihelper._t("I2P UI Configuration")%></h1>
 <div class="main" id="config_ui">
diff --git a/apps/routerconsole/jsp/configupdate.jsp b/apps/routerconsole/jsp/configupdate.jsp
index d23b4616c2a570717e44e40a79ef6250769ee19c..0401fa017f6f04a68fa6dd2c7467e92b70a28e8a 100644
--- a/apps/routerconsole/jsp/configupdate.jsp
+++ b/apps/routerconsole/jsp/configupdate.jsp
@@ -18,7 +18,7 @@
  <jsp:useBean class="net.i2p.router.web.ConfigUpdateHandler" id="formhandler" scope="request" />
 <%@include file="formhandler.jsi" %>
  <jsp:useBean class="net.i2p.router.web.ConfigUpdateHelper" id="updatehelper" scope="request" />
- <jsp:setProperty name="updatehelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="updatehelper" property="contextId" value="<%=i2pcontextId%>" />
 <div class="messages">
  <jsp:getProperty name="updatehelper" property="newsStatus" /></div>
  <form action="" method="POST">
diff --git a/apps/routerconsole/jsp/configwebapps.jsp b/apps/routerconsole/jsp/configwebapps.jsp
index 45b29fa26532f76fd76b2beaf0af0a602d4e8296..2b563283c22fc39bde3e3da4bf454d679d96efee 100644
--- a/apps/routerconsole/jsp/configwebapps.jsp
+++ b/apps/routerconsole/jsp/configwebapps.jsp
@@ -18,7 +18,7 @@ input.default { width: 1px; height: 1px; visibility: hidden; }
 <%@include file="summary.jsi" %>
 
 <jsp:useBean class="net.i2p.router.web.helpers.ConfigClientsHelper" id="clientshelper" scope="request" />
-<jsp:setProperty name="clientshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="clientshelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:setProperty name="clientshelper" property="edit" value="<%=request.getParameter(\"edit\")%>" />
 <h1><%=intl._t("WebApp Configuration")%></h1>
 <div class="main" id="config_webapps">
diff --git a/apps/routerconsole/jsp/console.jsp b/apps/routerconsole/jsp/console.jsp
index c20a825506b16394f53705da0db0cd594c014625..aed64557b14d2b7a1bddfee19541701f1d98b7b8 100644
--- a/apps/routerconsole/jsp/console.jsp
+++ b/apps/routerconsole/jsp/console.jsp
@@ -26,7 +26,7 @@
    }  // shouldShowNews()
 %>
  <jsp:useBean class="net.i2p.router.web.ConfigUpdateHelper" id="updatehelper" scope="request" />
- <jsp:setProperty name="updatehelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="updatehelper" property="contextId" value="<%=i2pcontextId%>" />
  <jsp:getProperty name="updatehelper" property="newsStatus" /><br>
 </div><div class="main" id="console">
  <jsp:useBean class="net.i2p.router.web.ContentHelper" id="contenthelper" scope="request" />
@@ -72,6 +72,6 @@
  <% java.io.File fpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getBaseDir(), "docs/readme.html"); %>
  <jsp:setProperty name="contenthelper" property="page" value="<%=fpath.getAbsolutePath()%>" />
  <jsp:setProperty name="contenthelper" property="maxLines" value="300" />
- <jsp:setProperty name="contenthelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="contenthelper" property="contextId" value="<%=i2pcontextId%>" />
  <jsp:getProperty name="contenthelper" property="content" />
 </div></body></html>
diff --git a/apps/routerconsole/jsp/createreseed.jsp b/apps/routerconsole/jsp/createreseed.jsp
index 2ee1fc0d3a8f2b2ed7ba07396a5b0cf0c1bd8ea6..9cac5005f847ec9eab5673ed4797aa7137d26a71 100644
--- a/apps/routerconsole/jsp/createreseed.jsp
+++ b/apps/routerconsole/jsp/createreseed.jsp
@@ -1,4 +1,9 @@
-<jsp:useBean class="net.i2p.router.web.helpers.ReseedGenerator" id="gen" scope="request" /><jsp:setProperty name="gen" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" /><%
+<%
+   String i2pcontextId = null;
+   try {
+       i2pcontextId = (String) session.getAttribute("i2p.contextId");
+   } catch (IllegalStateException ise) {}
+%><jsp:useBean class="net.i2p.router.web.helpers.ReseedGenerator" id="gen" scope="request" /><jsp:setProperty name="gen" property="contextId" value="<%=i2pcontextId%>" /><%
 /*
  * USE CAUTION WHEN EDITING
  * Trailing whitespace OR NEWLINE on the last line will cause
diff --git a/apps/routerconsole/jsp/css.jsi b/apps/routerconsole/jsp/css.jsi
index d203be368c70965a8a4c589a24afa2d5c05cf9da..6bdafa20c818538082c402cc164c827ffa478c5b 100644
--- a/apps/routerconsole/jsp/css.jsi
+++ b/apps/routerconsole/jsp/css.jsi
@@ -20,13 +20,18 @@
    // the response prior to including this file, so it should be
    // near the top
 
-   if (request.getParameter("i2p.contextId") != null) {
-       session.setAttribute("i2p.contextId", request.getParameter("i2p.contextId"));
-   }
+   String i2pcontextId = request.getParameter("i2p.contextId");
+   try {
+       if (i2pcontextId != null) {
+           session.setAttribute("i2p.contextId", i2pcontextId);
+       } else {
+           i2pcontextId = (String) session.getAttribute("i2p.contextId");
+       }
+   } catch (IllegalStateException ise) {}
 %>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <jsp:useBean class="net.i2p.router.web.CSSHelper" id="intl" scope="request" />
-<jsp:setProperty name="intl" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="intl" property="contextId" value="<%=i2pcontextId%>" />
 <link rel="icon" href="<%=intl.getTheme(request.getHeader("User-Agent"))%>images/favicon.ico">
 <%
    response.setHeader("Accept-Ranges", "none");
diff --git a/apps/routerconsole/jsp/dns.jsp b/apps/routerconsole/jsp/dns.jsp
index 03989c5a7d553f5314570a9574735141407fdd82..6a3021424294b3301b9f5618137e431187785c53 100644
--- a/apps/routerconsole/jsp/dns.jsp
+++ b/apps/routerconsole/jsp/dns.jsp
@@ -2,7 +2,13 @@
 <%@page trimDirectiveWhitespaces="true"%>
 <%@page pageEncoding="UTF-8"%>
 <jsp:useBean class="net.i2p.router.web.CSSHelper" id="tester" scope="request" />
-<jsp:setProperty name="tester" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<%
+   String i2pcontextId1 = null;
+   try {
+       i2pcontextId1 = (String) session.getAttribute("i2p.contextId");
+   } catch (IllegalStateException ise) {}
+%>
+<jsp:setProperty name="tester" property="contextId" value="<%=i2pcontextId1%>" />
 <%
     // CSSHelper is also pulled in by css.jsi below...
     boolean testIFrame = tester.allowIFrame(request.getHeader("User-Agent"));
diff --git a/apps/routerconsole/jsp/dumpprofile.jsp b/apps/routerconsole/jsp/dumpprofile.jsp
index 8cc9dcda89cc1c7ba736f9e70ea1d4b68f472466..9fcdbc2c36b0cd3557a82e5c052fd8174ee7dde0 100644
--- a/apps/routerconsole/jsp/dumpprofile.jsp
+++ b/apps/routerconsole/jsp/dumpprofile.jsp
@@ -1,6 +1,11 @@
 <%@page contentType="text/plain"
 %><jsp:useBean id="helper" class="net.i2p.router.web.helpers.StatHelper"
-/><jsp:setProperty name="helper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>"
+/><%
+   String i2pcontextId = null;
+   try {
+       i2pcontextId = (String) session.getAttribute("i2pcontextId");
+   } catch (IllegalStateException ise) {}
+%><jsp:setProperty name="helper" property="contextId" value="<%=i2pcontextId%>"
 /><jsp:setProperty name="helper" property="peer" value="<%=net.i2p.data.DataHelper.stripHTML(request.getParameter(\"peer\"))%>"
 /><% helper.storeWriter(out);
 %><jsp:getProperty name="helper" property="profile" />
diff --git a/apps/routerconsole/jsp/error500.jsp b/apps/routerconsole/jsp/error500.jsp
index 578071e01849cea74d7d17b99a756679e6df74e6..c220c18772feb4343ff44e96f37fe6a97f04230c 100644
--- a/apps/routerconsole/jsp/error500.jsp
+++ b/apps/routerconsole/jsp/error500.jsp
@@ -65,7 +65,7 @@
 <b>I2P version:</b> <%=net.i2p.router.RouterVersion.FULL_VERSION%><br>
 <b>Java version:</b> <%=System.getProperty("java.vendor")%> <%=System.getProperty("java.version")%> (<%=System.getProperty("java.runtime.name")%> <%=System.getProperty("java.runtime.version")%>)<br>
  <jsp:useBean class="net.i2p.router.web.helpers.LogsHelper" id="logsHelper" scope="request" />
- <jsp:setProperty name="logsHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="logsHelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:getProperty name="logsHelper" property="unavailableCrypto" />
 <b>Wrapper version:</b> <%=System.getProperty("wrapper.version", "none")%><br>
 <b>Server version:</b> <jsp:getProperty name="logsHelper" property="jettyVersion" /><br>
diff --git a/apps/routerconsole/jsp/events.jsp b/apps/routerconsole/jsp/events.jsp
index d92a6991ca672f0fae1b81165ed149302f982367..3b867f8900d2a661ade578e7ecce6ce4ac93da54 100644
--- a/apps/routerconsole/jsp/events.jsp
+++ b/apps/routerconsole/jsp/events.jsp
@@ -7,7 +7,7 @@
 <%@include file="css.jsi" %>
 <%=intl.title("events")%>
  <jsp:useBean class="net.i2p.router.web.helpers.EventLogHelper" id="eventHelper" scope="request" />
- <jsp:setProperty name="eventHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="eventHelper" property="contextId" value="<%=i2pcontextId%>" />
 <% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %>
  <jsp:setProperty name="eventHelper" property="*" />
 <%
diff --git a/apps/routerconsole/jsp/formhandler.jsi b/apps/routerconsole/jsp/formhandler.jsi
index 923158e0422a403e97a379b762123273603f414f..e168cc737305fe18bae676894d598c61a42bf463 100644
--- a/apps/routerconsole/jsp/formhandler.jsi
+++ b/apps/routerconsole/jsp/formhandler.jsi
@@ -10,7 +10,8 @@
      */
 
     // This initializes the RouterContext - must be the first thing
-    formhandler.setContextId((String)session.getAttribute("i2p.contextId"));
+    // i2pcontextId set in css.jsi
+    formhandler.setContextId(i2pcontextId);
 
     // Prevents any saves via GET
     formhandler.storeMethod(request.getMethod());
diff --git a/apps/routerconsole/jsp/graph.jsp b/apps/routerconsole/jsp/graph.jsp
index 304b8ac35ab456e22b1682363dd4e3e67e3cc542..debe4c60ba1aa014e8face89ac2d34aa2c487bd1 100644
--- a/apps/routerconsole/jsp/graph.jsp
+++ b/apps/routerconsole/jsp/graph.jsp
@@ -6,7 +6,7 @@
 <%@include file="css.jsi" %>
 <%=intl.title("graphs")%>
  <jsp:useBean class="net.i2p.router.web.helpers.GraphHelper" id="graphHelper" scope="request" />
- <jsp:setProperty name="graphHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="graphHelper" property="contextId" value="<%=i2pcontextId%>" />
 <% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %>
  <jsp:setProperty name="graphHelper" property="*" />
 <%
diff --git a/apps/routerconsole/jsp/graphs.jsp b/apps/routerconsole/jsp/graphs.jsp
index 235e33aa2072dbe789b50b145e574339c65c236c..c24f74bd6e0f671344850613308789a47bd497c9 100644
--- a/apps/routerconsole/jsp/graphs.jsp
+++ b/apps/routerconsole/jsp/graphs.jsp
@@ -7,7 +7,7 @@
 <%@include file="css.jsi" %>
 <%=intl.title("graphs")%>
  <jsp:useBean class="net.i2p.router.web.helpers.GraphHelper" id="graphHelper" scope="request" />
- <jsp:setProperty name="graphHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="graphHelper" property="contextId" value="<%=i2pcontextId%>" />
 <% /* GraphHelper sets the defaults in setContextId, so setting the properties must be after the context */ %>
  <jsp:setProperty name="graphHelper" property="*" />
 <%
diff --git a/apps/routerconsole/jsp/home.jsp b/apps/routerconsole/jsp/home.jsp
index 2e561a7b21318491212941afbbed7e89de26ec88..6b9bebc837943d18b8e613489d10ead38a1d7476 100644
--- a/apps/routerconsole/jsp/home.jsp
+++ b/apps/routerconsole/jsp/home.jsp
@@ -11,14 +11,14 @@
     String consoleNonce = net.i2p.router.web.CSSHelper.getNonce();
 %>
 <jsp:useBean class="net.i2p.router.web.NewsHelper" id="newshelper" scope="request" />
-<jsp:setProperty name="newshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="newshelper" property="contextId" value="<%=i2pcontextId%>" />
 <%
     java.io.File fpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getRouterDir(), "docs/news.xml");
 %>
  <jsp:setProperty name="newshelper" property="page" value="<%=fpath.getAbsolutePath()%>" />
  <jsp:setProperty name="newshelper" property="maxLines" value="300" />
  <jsp:useBean class="net.i2p.router.web.ConfigUpdateHelper" id="updatehelper" scope="request" />
- <jsp:setProperty name="updatehelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="updatehelper" property="contextId" value="<%=i2pcontextId%>" />
 
 <div class="routersummaryouter">
  <div class="routersummary">
@@ -55,7 +55,7 @@
 
 <div class="main" id="home">
 <jsp:useBean class="net.i2p.router.web.helpers.HomeHelper" id="homehelper" scope="request" />
-<jsp:setProperty name="homehelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="homehelper" property="contextId" value="<%=i2pcontextId%>" />
 <% if (homehelper.shouldShowWelcome()) { %>
 <div class="welcome" title="<%=intl._t("Click a flag to select a language. Click 'Configure UI' below to change it later.")%>">
   <div class="langbox" id="langbox">
@@ -109,7 +109,7 @@
         <button type="submit" value="search" class="search"><%=intl._t("Search")%></button>
       </td><td align="left">
         <jsp:useBean class="net.i2p.router.web.helpers.SearchHelper" id="searchhelper" scope="request" />
-        <jsp:setProperty name="searchhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+        <jsp:setProperty name="searchhelper" property="contextId" value="<%=i2pcontextId%>" />
         <jsp:getProperty name="searchhelper" property="selector" />
       </td></tr></table>
     </form>
diff --git a/apps/routerconsole/jsp/i2ptunnelmgr.jsp b/apps/routerconsole/jsp/i2ptunnelmgr.jsp
index eacfa131044114f67806a6d9523b6590c8ef9a75..c51b0243b89df9df5120bd47da978cc9e61c7080 100644
--- a/apps/routerconsole/jsp/i2ptunnelmgr.jsp
+++ b/apps/routerconsole/jsp/i2ptunnelmgr.jsp
@@ -2,7 +2,13 @@
 <%@page trimDirectiveWhitespaces="true"%>
 <%@page pageEncoding="UTF-8"%>
 <jsp:useBean class="net.i2p.router.web.CSSHelper" id="tester" scope="request" />
-<jsp:setProperty name="tester" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<%
+   String i2pcontextId1 = null;
+   try {
+       i2pcontextId1 = (String) session.getAttribute("i2p.contextId");
+   } catch (IllegalStateException ise) {}
+%>
+<jsp:setProperty name="tester" property="contextId" value="<%=i2pcontextId1%>" />
 <%
     // CSSHelper is also pulled in by css.jsi below...
     boolean testIFrame = tester.allowIFrame(request.getHeader("User-Agent"));
diff --git a/apps/routerconsole/jsp/jars.jsp b/apps/routerconsole/jsp/jars.jsp
index 2286d975aa93ac0deed47a88d26484b422553d36..0db353740a7d38d9833f0722873ea5bb8db79042 100644
--- a/apps/routerconsole/jsp/jars.jsp
+++ b/apps/routerconsole/jsp/jars.jsp
@@ -11,6 +11,6 @@
 <%@include file="summary.jsi" %><h1>Jar File Dump</h1>
 <div class="main" id="jardump">
 <jsp:useBean class="net.i2p.router.web.helpers.FileDumpHelper" id="dumpHelper" scope="request" />
-<jsp:setProperty name="dumpHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="dumpHelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:getProperty name="dumpHelper" property="fileSummary" />
 </div></body></html>
diff --git a/apps/routerconsole/jsp/jobs.jsp b/apps/routerconsole/jsp/jobs.jsp
index f9f39371b93b82653ea5c11edd08c142a92e0055..7baa328f7922eb368887147262ba5e68f25a5c31 100644
--- a/apps/routerconsole/jsp/jobs.jsp
+++ b/apps/routerconsole/jsp/jobs.jsp
@@ -12,7 +12,7 @@
 <%@include file="summary.jsi" %><h1><%=intl._t("I2P Router Job Queue")%></h1>
 <div class="main" id="jobs">
  <jsp:useBean class="net.i2p.router.web.helpers.JobQueueHelper" id="jobQueueHelper" scope="request" />
- <jsp:setProperty name="jobQueueHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="jobQueueHelper" property="contextId" value="<%=i2pcontextId%>" />
  <% jobQueueHelper.storeWriter(out); %>
  <jsp:getProperty name="jobQueueHelper" property="jobQueueSummary" />
 </div></body></html>
diff --git a/apps/routerconsole/jsp/logs.jsp b/apps/routerconsole/jsp/logs.jsp
index bf8c244cca13f8956468df7d6f4e4ce29ef88d45..1b2b84d31c8df9742426b5ec3510958ec198a4b2 100644
--- a/apps/routerconsole/jsp/logs.jsp
+++ b/apps/routerconsole/jsp/logs.jsp
@@ -28,7 +28,7 @@
 <tr><td><b>I2P version:</b></td><td><%=net.i2p.router.RouterVersion.FULL_VERSION%></td></tr>
 <tr><td><b>Java version:</b></td><td><%=System.getProperty("java.vendor")%> <%=System.getProperty("java.version")%> (<%=System.getProperty("java.runtime.name")%> <%=System.getProperty("java.runtime.version")%>)</td></tr>
  <jsp:useBean class="net.i2p.router.web.helpers.LogsHelper" id="logsHelper" scope="request" />
- <jsp:setProperty name="logsHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="logsHelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:getProperty name="logsHelper" property="unavailableCrypto" />
 <tr><td><b>Wrapper version:</b></td><td><%=System.getProperty("wrapper.version", "none")%></td></tr>
 <tr><td><b>Server version:</b></td><td><jsp:getProperty name="logsHelper" property="jettyVersion" /></td></tr>
diff --git a/apps/routerconsole/jsp/netdb.jsp b/apps/routerconsole/jsp/netdb.jsp
index 46fe94fb86f7a82efed1bfb06e0eb0abfca606c0..6c940f615a53dd804522603e7ab49630056d99e5 100644
--- a/apps/routerconsole/jsp/netdb.jsp
+++ b/apps/routerconsole/jsp/netdb.jsp
@@ -13,7 +13,7 @@
 <h1><%=intl._t("I2P Network Database")%></h1>
 <div class="main" id="netdb">
  <jsp:useBean class="net.i2p.router.web.helpers.NetDbHelper" id="netdbHelper" scope="request" />
- <jsp:setProperty name="netdbHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="netdbHelper" property="contextId" value="<%=i2pcontextId%>" />
 <%
     netdbHelper.storeWriter(out);
     if (allowIFrame)
diff --git a/apps/routerconsole/jsp/news.jsp b/apps/routerconsole/jsp/news.jsp
index eb23a67d5de66995864226b49f27070296a6dd53..33c62379da8aeeeed7967a7180944d4b20187767 100644
--- a/apps/routerconsole/jsp/news.jsp
+++ b/apps/routerconsole/jsp/news.jsp
@@ -12,7 +12,7 @@
 <h1><%=intl._t("Latest News")%></h1>
 <div class="main" id="news">
 <jsp:useBean class="net.i2p.router.web.NewsFeedHelper" id="feedHelper" scope="request" />
-<jsp:setProperty name="feedHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="feedHelper" property="contextId" value="<%=i2pcontextId%>" />
 <% feedHelper.setLimit(0); %>
 <div id="newspage">
 <jsp:getProperty name="feedHelper" property="entries" />
diff --git a/apps/routerconsole/jsp/oldconsole.jsp b/apps/routerconsole/jsp/oldconsole.jsp
index de6f9a9b8f30adf3e508a541d0542d1080ec9abf..1ac2578ad33356c6e065492b0457f975b86b0df9 100644
--- a/apps/routerconsole/jsp/oldconsole.jsp
+++ b/apps/routerconsole/jsp/oldconsole.jsp
@@ -14,7 +14,7 @@
 </head><body onload="initAjax()">
 <%@include file="summary.jsi" %>
 <jsp:useBean class="net.i2p.router.web.helpers.OldConsoleHelper" id="conhelper" scope="request" />
-<jsp:setProperty name="conhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="conhelper" property="contextId" value="<%=i2pcontextId%>" />
 <% conhelper.storeWriter(out); %>
  <h1>I2P Router &raquo; Old Console</h1>
 <div class="main" id="oldconsole"><p>
diff --git a/apps/routerconsole/jsp/peers.jsp b/apps/routerconsole/jsp/peers.jsp
index bed58cc4c8e31bc7c0e082676ec1cbd2823df036..2e3ba63e721d556a1d8975dba9d715b5df550e6a 100644
--- a/apps/routerconsole/jsp/peers.jsp
+++ b/apps/routerconsole/jsp/peers.jsp
@@ -13,7 +13,7 @@
 <h1><%=intl._t("I2P Network Peers")%></h1>
 <div class="main" id="peers">
  <jsp:useBean class="net.i2p.router.web.helpers.PeerHelper" id="peerHelper" scope="request" />
- <jsp:setProperty name="peerHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="peerHelper" property="contextId" value="<%=i2pcontextId%>" />
  <% peerHelper.storeWriter(out); %>
  <jsp:setProperty name="peerHelper" property="urlBase" value="peers.jsp" />
  <jsp:setProperty name="peerHelper" property="sort" value="<%=request.getParameter(\"sort\") != null ? request.getParameter(\"sort\") : \"\"%>" />
diff --git a/apps/routerconsole/jsp/profiles.jsp b/apps/routerconsole/jsp/profiles.jsp
index 0999e9f96ea6d80cdc227f40e878215e22fbb875..eea5cdfe0f8020ce0e01be7ba8a9a917f9fc8b9d 100644
--- a/apps/routerconsole/jsp/profiles.jsp
+++ b/apps/routerconsole/jsp/profiles.jsp
@@ -13,7 +13,7 @@
 <h1><%=intl._t("I2P Network Peer Profiles")%></h1>
 <div class="main" id="profiles"><div class="wideload">
  <jsp:useBean class="net.i2p.router.web.helpers.ProfilesHelper" id="profilesHelper" scope="request" />
- <jsp:setProperty name="profilesHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="profilesHelper" property="contextId" value="<%=i2pcontextId%>" />
 <%
     profilesHelper.storeWriter(out);
     if (allowIFrame)
diff --git a/apps/routerconsole/jsp/proof.jsp b/apps/routerconsole/jsp/proof.jsp
index bf9079cbc3d4e709996313060fda1070ae30f9e5..0c4081f76f938bbcb112a9bbe565c260f49d85ad 100644
--- a/apps/routerconsole/jsp/proof.jsp
+++ b/apps/routerconsole/jsp/proof.jsp
@@ -11,6 +11,6 @@
 <%@include file="summary.jsi" %><h1>Proof of Ownership</h1>
 <div class="main" id="proof"><p>
 <jsp:useBean class="net.i2p.router.web.helpers.ProofHelper" id="proofHelper" scope="request" />
-<jsp:setProperty name="proofHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="proofHelper" property="contextId" value="<%=i2pcontextId%>" />
 <textarea cols="70" rows="15" wrap="off" readonly="readonly" spellcheck="false"><jsp:getProperty name="proofHelper" property="proof" /></textarea>
 </p></div></body></html>
diff --git a/apps/routerconsole/jsp/search.jsp b/apps/routerconsole/jsp/search.jsp
index 1ef4f658a4dd0bb6348c8313292021d3d9685495..8ce56a8daafd219c99bd81a65124f8c828a7de77 100644
--- a/apps/routerconsole/jsp/search.jsp
+++ b/apps/routerconsole/jsp/search.jsp
@@ -4,9 +4,13 @@
    // http://www.crazysquirrel.com/computing/general/form-encoding.jspx
    if (request.getCharacterEncoding() == null)
        request.setCharacterEncoding("UTF-8");
+   String i2pcontextId = null;
+   try {
+       i2pcontextId = (String) session.getAttribute("i2p.contextId");
+   } catch (IllegalStateException ise) {}
 %>
 <jsp:useBean class="net.i2p.router.web.helpers.SearchHelper" id="searchhelper" scope="request" />
-<jsp:setProperty name="searchhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="searchhelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:setProperty name="searchhelper" property="engine" value="<%=request.getParameter(\"engine\")%>" />
 <jsp:setProperty name="searchhelper" property="query" value="<%=request.getParameter(\"query\")%>" />
 <html><head></head><body><b>
diff --git a/apps/routerconsole/jsp/stats.jsp b/apps/routerconsole/jsp/stats.jsp
index 4bcce96c4cd63780042977ff7b5adc6afd78a43d..1e72f75d3c1c735bb2ff00a16605cc7391afcf23 100644
--- a/apps/routerconsole/jsp/stats.jsp
+++ b/apps/routerconsole/jsp/stats.jsp
@@ -11,7 +11,7 @@
 </head><body onload="initAjax()">
 <%@include file="summary.jsi" %>
 <jsp:useBean class="net.i2p.router.web.helpers.OldConsoleHelper" id="oldhelper" scope="request" />
-<jsp:setProperty name="oldhelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="oldhelper" property="contextId" value="<%=i2pcontextId%>" />
 <% oldhelper.storeWriter(out); %>
 <jsp:setProperty name="oldhelper" property="full" value="<%=request.getParameter(\"f\")%>" />
  <h1><%=intl._t("I2P Router Statistics")%></h1>
diff --git a/apps/routerconsole/jsp/summary.jsi b/apps/routerconsole/jsp/summary.jsi
index 9768d95854af17276da754bfc36df832876eb215..e522c1e8ce38f253480725c023473f92937bb0ca 100644
--- a/apps/routerconsole/jsp/summary.jsi
+++ b/apps/routerconsole/jsp/summary.jsi
@@ -1,5 +1,5 @@
 <jsp:useBean class="net.i2p.router.web.NewsHelper" id="newshelper" scope="request" />
-<jsp:setProperty name="newshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="newshelper" property="contextId" value="<%=i2pcontextId%>" />
 <%
     java.io.File newspath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getRouterDir(), "docs/news.xml");
 %>
diff --git a/apps/routerconsole/jsp/summaryframe.jsp b/apps/routerconsole/jsp/summaryframe.jsp
index 143ddf1b8be230f510e9d892afd9ec3c4c768d67..83ea1aa388f1ca831dcdd7738be9a8c4af6ee938 100644
--- a/apps/routerconsole/jsp/summaryframe.jsp
+++ b/apps/routerconsole/jsp/summaryframe.jsp
@@ -55,7 +55,7 @@
 %>
 </head><body style="margin: 0;"><div class="routersummary">
 <jsp:useBean class="net.i2p.router.web.NewsHelper" id="newshelper" scope="request" />
-<jsp:setProperty name="newshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="newshelper" property="contextId" value="<%=i2pcontextId%>" />
 <%
     java.io.File newspath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getRouterDir(), "docs/news.xml");
 %>
diff --git a/apps/routerconsole/jsp/torrents.jsp b/apps/routerconsole/jsp/torrents.jsp
index 885431765ae57d5111e99295bcdb9ff0cc60e6c0..d7215ade73d46c6a301e99322f6c2ab2fdcff5a7 100644
--- a/apps/routerconsole/jsp/torrents.jsp
+++ b/apps/routerconsole/jsp/torrents.jsp
@@ -2,7 +2,13 @@
 <%@page trimDirectiveWhitespaces="true"%>
 <%@page pageEncoding="UTF-8"%>
 <jsp:useBean class="net.i2p.router.web.CSSHelper" id="tester" scope="request" />
-<jsp:setProperty name="tester" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<%
+   String i2pcontextId1 = null;
+   try {
+       i2pcontextId1 = (String) session.getAttribute("i2p.contextId");
+   } catch (IllegalStateException ise) {}
+%>
+<jsp:setProperty name="tester" property="contextId" value="<%=i2pcontextId1%>" />
 <%
     // CSSHelper is also pulled in by css.jsi below...
     boolean testIFrame = tester.allowIFrame(request.getHeader("User-Agent"));
diff --git a/apps/routerconsole/jsp/tunnels.jsp b/apps/routerconsole/jsp/tunnels.jsp
index 1d36aa11b2ec316dcd18c1fa996892ba44454367..9c464e3e16d5b4a08dde9c162da92c8ce58f44d7 100644
--- a/apps/routerconsole/jsp/tunnels.jsp
+++ b/apps/routerconsole/jsp/tunnels.jsp
@@ -12,7 +12,7 @@
 <%@include file="summary.jsi" %><h1><%=intl._t("I2P Tunnel Summary")%></h1>
 <div class="main" id="tunnels">
  <jsp:useBean class="net.i2p.router.web.helpers.TunnelHelper" id="tunnelHelper" scope="request" />
- <jsp:setProperty name="tunnelHelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+ <jsp:setProperty name="tunnelHelper" property="contextId" value="<%=i2pcontextId%>" />
  <% tunnelHelper.storeWriter(out); %>
  <jsp:getProperty name="tunnelHelper" property="tunnelSummary" />
 </div></body></html>
diff --git a/apps/routerconsole/jsp/viewprofile.jsp b/apps/routerconsole/jsp/viewprofile.jsp
index 0ecf83fc5412e0b208ab9dcc2cd32527f9fdc4ac..ff6fae53b393a4dd77989795defcdf758f4a44e8 100644
--- a/apps/routerconsole/jsp/viewprofile.jsp
+++ b/apps/routerconsole/jsp/viewprofile.jsp
@@ -21,7 +21,7 @@
 
 %>
 <jsp:useBean id="stathelper" class="net.i2p.router.web.helpers.StatHelper" />
-<jsp:setProperty name="stathelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="stathelper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:setProperty name="stathelper" property="peer" value="<%=peerB64%>" />
 <% stathelper.storeWriter(out); %>
 <h2><%=intl._t("Profile for peer {0}", peerB64)%></h2>
diff --git a/apps/routerconsole/jsp/webmail.jsp b/apps/routerconsole/jsp/webmail.jsp
index 6cd4b928de9d41f4dc318b8791bb1152fdbcc145..6491e02121d43d74621080e772970eb2432034e6 100644
--- a/apps/routerconsole/jsp/webmail.jsp
+++ b/apps/routerconsole/jsp/webmail.jsp
@@ -2,7 +2,13 @@
 <%@page trimDirectiveWhitespaces="true"%>
 <%@page pageEncoding="UTF-8"%>
 <jsp:useBean class="net.i2p.router.web.CSSHelper" id="tester" scope="request" />
-<jsp:setProperty name="tester" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<%
+   String i2pcontextId1 = null;
+   try {
+       i2pcontextId1 = (String) session.getAttribute("i2p.contextId");
+   } catch (IllegalStateException ise) {}
+%>
+<jsp:setProperty name="tester" property="contextId" value="<%=i2pcontextId1%>" />
 <%
     // CSSHelper is also pulled in by css.jsi below...
     boolean testIFrame = tester.allowIFrame(request.getHeader("User-Agent"));
diff --git a/apps/routerconsole/jsp/xhr1.jsi b/apps/routerconsole/jsp/xhr1.jsi
index bc33ab6841e9779064d125e45786676fb749bb76..572e497d816747bbb0bfc5d38acf78e7ad94596e 100644
--- a/apps/routerconsole/jsp/xhr1.jsi
+++ b/apps/routerconsole/jsp/xhr1.jsi
@@ -6,7 +6,7 @@
  */
 %>
 <jsp:useBean class="net.i2p.router.web.helpers.SummaryHelper" id="helper" scope="request" />
-<jsp:setProperty name="helper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="helper" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:setProperty name="helper" property="action" value="<%=request.getParameter(\"action\")%>" />
 <jsp:setProperty name="helper" property="updateNonce" value="<%=request.getParameter(\"updateNonce\")%>" />
 <jsp:setProperty name="helper" property="consoleNonce" value="<%=request.getParameter(\"consoleNonce\")%>" />
@@ -34,7 +34,7 @@
 %>
 <jsp:useBean class="net.i2p.router.web.UpdateHandler" id="update" scope="request" />
 <jsp:setProperty name="update" property="*" />
-<jsp:setProperty name="update" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="update" property="contextId" value="<%=i2pcontextId%>" />
 <%
     // moved to java for ease of translation
     helper.renderSummaryBar();
diff --git a/apps/routerconsole/jsp/xhr1.jsp b/apps/routerconsole/jsp/xhr1.jsp
index 06458410b6b71046d3dfa4a8f8357c7d7866617c..b3bde1995ca2cbd75413b22f3b2d07a544fd8989 100644
--- a/apps/routerconsole/jsp/xhr1.jsp
+++ b/apps/routerconsole/jsp/xhr1.jsp
@@ -5,15 +5,20 @@
    if (request.getCharacterEncoding() == null)
        request.setCharacterEncoding("UTF-8");
 
-   if (request.getParameter("i2p.contextId") != null) {
-       session.setAttribute("i2p.contextId", request.getParameter("i2p.contextId"));
-   }
+   String i2pcontextId = request.getParameter("i2p.contextId");
+   try {
+       if (i2pcontextId != null) {
+           session.setAttribute("i2p.contextId", i2pcontextId);
+       } else {
+           i2pcontextId = (String) session.getAttribute("i2p.contextId");
+       }
+   } catch (IllegalStateException ise) {}
    response.setHeader("X-Content-Type-Options", "nosniff");
 %>
 <jsp:useBean class="net.i2p.router.web.CSSHelper" id="intl" scope="request" />
-<jsp:setProperty name="intl" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="intl" property="contextId" value="<%=i2pcontextId%>" />
 <jsp:useBean class="net.i2p.router.web.NewsHelper" id="newshelper" scope="request" />
-<jsp:setProperty name="newshelper" property="contextId" value="<%=(String)session.getAttribute(\"i2p.contextId\")%>" />
+<jsp:setProperty name="newshelper" property="contextId" value="<%=i2pcontextId%>" />
 <%
     java.io.File fpath = new java.io.File(net.i2p.I2PAppContext.getGlobalContext().getRouterDir(), "docs/news.xml");
 %>