diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java
index b34144032aadd8d84e1cfbd5c4e4a8d732884c55..456328681659df333dd26485eac708f72d8d1290 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java
@@ -210,53 +210,14 @@ public class SummaryBarRenderer {
            .append(_("Network"))
            .append(": ")
            .append(_helper.getReachability())
-           .append("</a></h4><hr>\n");
+           .append("</a></h4><hr>\n")
 
 
-        // display all the time so we display the final failure message, and plugin update messages too
-        String status = UpdateHandler.getStatus();
-        if (status.length() > 0) {
-            buf.append("<h4>").append(status).append("</h4><hr>\n");
-        }
-        if (_helper.updateAvailable() || _helper.unsignedUpdateAvailable()) {
-            if ("true".equals(System.getProperty(UpdateHandler.PROP_UPDATE_IN_PROGRESS))) {
-                // nothing
-            } else if(
-                      // isDone() is always false for now, see UpdateHandler
-                      // ((!update.isDone()) &&
-                      _helper.getAction() == null &&
-                      _helper.getUpdateNonce() == null &&
-                      ConfigRestartBean.getRestartTimeRemaining() > 12*60*1000) {
-                long nonce = _context.random().nextLong();
-                String prev = System.getProperty("net.i2p.router.web.UpdateHandler.nonce");
-                if (prev != null)
-                    System.setProperty("net.i2p.router.web.UpdateHandler.noncePrev", prev);
-                System.setProperty("net.i2p.router.web.UpdateHandler.nonce", nonce+"");
-                String uri = _helper.getRequestURI();
-                buf.append("<form action=\"").append(uri).append("\" method=\"POST\">\n");
-                buf.append("<input type=\"hidden\" name=\"updateNonce\" value=\"").append(nonce).append("\" >\n");
-                if (_helper.updateAvailable()) {
-                    buf.append("<button type=\"submit\" class=\"download\" name=\"updateAction\" value=\"signed\" >")
-                       // Note to translators: parameter is a version, e.g. "0.8.4"
-                       .append(_("Download {0} Update", _helper.getUpdateVersion()))
-                       .append("</button><br>\n");
-                }
-                if (_helper.unsignedUpdateAvailable()) {
-                    buf.append("<button type=\"submit\" class=\"download\" name=\"updateAction\" value=\"Unsigned\" >")
-                       // Note to translators: parameter is a date and time, e.g. "02-Mar 20:34 UTC"
-                       // <br> is optional, to help the browser make the lines even in the button
-                       // If the translation is shorter than the English, you should probably not include <br>
-                       .append(_("Download Unsigned<br>Update {0}", _helper.getUnsignedUpdateVersion()))
-                       .append("</button><br>\n");
-                }
-                buf.append("</form>\n");
-            }
-        }
-
+           .append(_helper.getUpdateStatus())
 
 
+           .append(_helper.getRestartStatus())
 
-        buf.append(ConfigRestartBean.renderStatus(_helper.getRequestURI(), _helper.getAction(), _helper.getConsoleNonce()))
 
            .append("<hr><h3><a href=\"/peers\" target=\"_top\" title=\"")
            .append(_("Show all current peer connections"))
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
index 5ac51b7a3c39d9fcb895b73bc3fd96f1f7e03448..4805a3e29cdd4c6e3cd6dc0c11a3601dc1e1bc9e 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
@@ -27,6 +27,8 @@ import net.i2p.stat.RateStat;
 /**
  * Simple helper to query the appropriate router for data necessary to render
  * the summary sections on the router console.  
+ *
+ * For the full summary bar use renderSummaryBar()
  */
 public class SummaryHelper extends HelperBase {
 
@@ -604,6 +606,62 @@ public class SummaryHelper extends HelperBase {
         return NewsFetcher.getInstance(_context).unsignedUpdateVersion();
     }
 
+    /**
+     *  The update status and buttons
+     *  @since 0.8.13 moved from SummaryBarRenderer
+     */
+    public String getUpdateStatus() {
+        StringBuilder buf = new StringBuilder(512);
+        // display all the time so we display the final failure message, and plugin update messages too
+        String status = UpdateHandler.getStatus();
+        if (status.length() > 0) {
+            buf.append("<h4>").append(status).append("</h4><hr>\n");
+        }
+        if (updateAvailable() || unsignedUpdateAvailable()) {
+            if ("true".equals(System.getProperty(UpdateHandler.PROP_UPDATE_IN_PROGRESS))) {
+                // nothing
+            } else if(
+                      // isDone() is always false for now, see UpdateHandler
+                      // ((!update.isDone()) &&
+                      getAction() == null &&
+                      getUpdateNonce() == null &&
+                      ConfigRestartBean.getRestartTimeRemaining() > 12*60*1000) {
+                long nonce = _context.random().nextLong();
+                String prev = System.getProperty("net.i2p.router.web.UpdateHandler.nonce");
+                if (prev != null)
+                    System.setProperty("net.i2p.router.web.UpdateHandler.noncePrev", prev);
+                System.setProperty("net.i2p.router.web.UpdateHandler.nonce", nonce+"");
+                String uri = getRequestURI();
+                buf.append("<form action=\"").append(uri).append("\" method=\"POST\">\n");
+                buf.append("<input type=\"hidden\" name=\"updateNonce\" value=\"").append(nonce).append("\" >\n");
+                if (updateAvailable()) {
+                    buf.append("<button type=\"submit\" class=\"download\" name=\"updateAction\" value=\"signed\" >")
+                       // Note to translators: parameter is a version, e.g. "0.8.4"
+                       .append(_("Download {0} Update", getUpdateVersion()))
+                       .append("</button><br>\n");
+                }
+                if (unsignedUpdateAvailable()) {
+                    buf.append("<button type=\"submit\" class=\"download\" name=\"updateAction\" value=\"Unsigned\" >")
+                       // Note to translators: parameter is a date and time, e.g. "02-Mar 20:34 UTC"
+                       // <br> is optional, to help the browser make the lines even in the button
+                       // If the translation is shorter than the English, you should probably not include <br>
+                       .append(_("Download Unsigned<br>Update {0}", getUnsignedUpdateVersion()))
+                       .append("</button><br>\n");
+                }
+                buf.append("</form>\n");
+            }
+        }
+        return buf.toString();
+    }
+
+    /**
+     *  The restart status and buttons
+     *  @since 0.8.13 moved from SummaryBarRenderer
+     */
+    public String getRestartStatus() {
+        return ConfigRestartBean.renderStatus(getRequestURI(), getAction(), getConsoleNonce());
+    }
+
     /** output the summary bar to _out */
     public void renderSummaryBar() throws IOException {
         SummaryBarRenderer renderer = new SummaryBarRenderer(_context, this);