diff --git a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java
index 0b36fa4e6c8b35a07adb56715f82d73348d99e8a..b549a98987a301ac3542d7250c89b719f2909f4c 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java
@@ -24,7 +24,7 @@ public class CSSHelper extends HelperBase {
     public static final String BASE_THEME_PATH = "/themes/console/";
     private static final String FORCE = "classic";
     public static final String PROP_REFRESH = "routerconsole.summaryRefresh";
-    public static final String DEFAULT_REFRESH = "60";
+    public static final String DEFAULT_REFRESH = "15";
     public static final int MIN_REFRESH = 3;
     public static final String PROP_DISABLE_REFRESH = "routerconsole.summaryDisableRefresh";
     private static final String PROP_XFRAME = "routerconsole.disableXFrame";
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java
index f15118ce6c5c1d9cccd061726c4db28758829981..2053a854c95aa1606a8063cc16f927951c2c2277 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigSummaryHandler.java
@@ -1,5 +1,6 @@
 package net.i2p.router.web.helpers;
 
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Map;
@@ -28,11 +29,22 @@ public class ConfigSummaryHandler extends FormHandler {
         if (_action.equals(_t("Save")) && "0".equals(group)) {
             try {
                 int refreshInterval = Integer.parseInt(getJettyString("refreshInterval"));
-                if (refreshInterval >= CSSHelper.MIN_REFRESH) {
-                    _context.router().saveConfig(CSSHelper.PROP_REFRESH, Integer.toString(refreshInterval));
+                if (refreshInterval < 0)
+                    refreshInterval = 0;
+                else if (refreshInterval > 0 && refreshInterval < CSSHelper.MIN_REFRESH)
+                    refreshInterval = CSSHelper.MIN_REFRESH;
+                Map<String, String> toAdd = new HashMap<String, String>(2);
+                if (refreshInterval == 0) {
+                    toAdd.put(CSSHelper.PROP_DISABLE_REFRESH, "true");
+                    toAdd.put(CSSHelper.PROP_REFRESH, CSSHelper.DEFAULT_REFRESH);
+                    _context.router().saveConfig(toAdd, null);
+                    addFormNotice(_t("Refresh disabled"));
+                } else {
+                    toAdd.put(CSSHelper.PROP_DISABLE_REFRESH, "false");
+                    toAdd.put(CSSHelper.PROP_REFRESH, Integer.toString(refreshInterval));
+                    _context.router().saveConfig(toAdd, null);
                     addFormNotice(_t("Refresh interval changed"));
-                } else
-                    addFormError(_t("Refresh interval must be at least {0} seconds", CSSHelper.MIN_REFRESH));
+                }
             } catch (java.lang.NumberFormatException e) {
                 addFormError(_t("Refresh interval must be a number"));
                 return;
diff --git a/apps/routerconsole/jsp/configsidebar.jsp b/apps/routerconsole/jsp/configsidebar.jsp
index ff2d016990b38229c0859b7778034154dac55341..df93c8412a9fbd8c32f1f1556f9b7c90b10ca521 100644
--- a/apps/routerconsole/jsp/configsidebar.jsp
+++ b/apps/routerconsole/jsp/configsidebar.jsp
@@ -33,7 +33,14 @@ input.default {
   <td>
  <input type="hidden" name="nonce" value="<%=pageNonce%>" >
  <input type="hidden" name="group" value="0">
- <input type="text" name="refreshInterval" value="<jsp:getProperty name="intl" property="refresh" />" >
+<%
+    String rval;
+    if (intl.getDisableRefresh())
+        rval = "0";
+    else
+        rval = intl.getRefresh();
+%>
+ <input type="text" name="refreshInterval" value="<%=rval%>">
  <%=intl._t("seconds")%>
   </td>
   <td class="optionsave">
diff --git a/apps/routerconsole/jsp/summaryajax.jsi b/apps/routerconsole/jsp/summaryajax.jsi
index 13602263655fb188281bdde31dfb319af94c15f8..08abb22da66cbb0043d5e3ce3bc410205d68205d 100644
--- a/apps/routerconsole/jsp/summaryajax.jsi
+++ b/apps/routerconsole/jsp/summaryajax.jsi
@@ -1,7 +1,11 @@
-<script src="/js/ajax.js?<%=net.i2p.CoreVersion.VERSION%>" type="text/javascript"></script>
+<%
+    if (!intl.getDisableRefresh()) {
+%><script src="/js/ajax.js?<%=net.i2p.CoreVersion.VERSION%>" type="text/javascript"></script>
 <script nonce="<%=cspNonce%>" type="text/javascript">
   var failMessage = "<hr><b><%=intl._t("Router is down")%><\/b>";
   function requestAjax1() { ajax("/xhr1.jsp?requestURI=<%=request.getRequestURI()%>", "xhr", <%=intl.getRefresh()%>000); }
   function initAjax() { setTimeout(requestAjax1, <%=intl.getRefresh()%>000);  }
   initAjax();
-</script>
+</script><%
+    }
+%>