diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNetHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNetHandler.java
index e03e70c1f81bdfed6be87beb5c695362e24ffe9c..0895860d41832c07859e60473aed7fc9f38b61e7 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNetHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigNetHandler.java
@@ -170,6 +170,7 @@ public class ConfigNetHandler extends FormHandler {
      */
     private void saveChanges() {
         boolean restartRequired = false;
+        boolean fullRestartRequired = false;
         boolean error = false;
         List<String> removes = new ArrayList<String>();
         
@@ -260,6 +261,7 @@ public class ConfigNetHandler extends FormHandler {
             if (_ntcpHostname == null) _ntcpHostname = "";
             if (_ntcpPort == null) _ntcpPort = "";
             if (_ntcpAutoIP == null) _ntcpAutoIP = "true";
+            boolean oldNTCPEnabled = _context.getBooleanPropertyDefaultTrue(TransportManager.PROP_ENABLE_NTCP);
 
             if ((!oldAutoHost.equals(_ntcpAutoIP)) || ! oldNHost.equalsIgnoreCase(_ntcpHostname)) {
                 boolean valid = true;
@@ -282,8 +284,11 @@ public class ConfigNetHandler extends FormHandler {
                 }
                 if (valid) {
                     changes.put(ConfigNetHelper.PROP_I2NP_NTCP_AUTO_IP, _ntcpAutoIP);
-                    changes.put(TransportManager.PROP_ENABLE_NTCP, Boolean.toString(!"disabled".equals(_ntcpAutoIP)));
+                    boolean ntcpEnabled = !"disabled".equals(_ntcpAutoIP);
+                    changes.put(TransportManager.PROP_ENABLE_NTCP, Boolean.toString(ntcpEnabled));
                     restartRequired = true;
+                    if (oldNTCPEnabled != ntcpEnabled)
+                        fullRestartRequired = true;
                 }
             }
             if (oldAutoPort != _ntcpAutoPort || ! oldNPort.equals(_ntcpPort)) {
@@ -356,7 +361,7 @@ public class ConfigNetHandler extends FormHandler {
                     addFormNotice(_t("Enabling UPnP"));
                 else
                     addFormNotice(_t("Disabling UPnP"));
-                addFormNotice(_t("Restart required to take effect"));
+                fullRestartRequired = true;
             }
             changes.put(TransportManager.PROP_ENABLE_UPNP, Boolean.toString(_upnp));
 
@@ -396,7 +401,7 @@ public class ConfigNetHandler extends FormHandler {
                     addFormNotice(_t("Disabling UDP"));
                 else
                     addFormNotice(_t("Enabling UDP"));
-                restartRequired = true;
+                fullRestartRequired = true;
             }
             changes.put(TransportManager.PROP_ENABLE_UDP, Boolean.toString(!_udpDisabled));
 
@@ -424,6 +429,8 @@ public class ConfigNetHandler extends FormHandler {
         if (saved && !error) {
             if (switchRequired) {
                 hiddenSwitch();
+            } else if (fullRestartRequired) {
+                addFormNotice(_t("Restart required to take effect"));
             } else if (restartRequired) {
               //if (_context.hasWrapper()) {
                 // Wow this dumps all conns immediately and really isn't nice