Index: trunk/src/org/openstreetmap/josm/gui/preferences/RemoteControlPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/RemoteControlPreference.java	(revision 5859)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/RemoteControlPreference.java	(revision 5861)
@@ -34,4 +34,7 @@
 public class RemoteControlPreference extends DefaultTabPreferenceSetting {
 
+    /**
+     * Factory used to build a new instance of this preference setting
+     */
     public static class Factory implements PreferenceSettingFactory {
 
@@ -120,5 +123,12 @@
             Main.pref.put(RequestHandler.globalConfirmationKey, alwaysAskUserConfirm.isSelected());
         }
-        return changed;
+        if (changed) {
+            if (enabled) {
+                RemoteControl.start();
+            } else {
+                RemoteControl.stop();
+            }
+        }
+        return false;
     }
 }
Index: trunk/src/org/openstreetmap/josm/io/remotecontrol/RemoteControl.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/remotecontrol/RemoteControl.java	(revision 5859)
+++ trunk/src/org/openstreetmap/josm/io/remotecontrol/RemoteControl.java	(revision 5861)
@@ -35,4 +35,12 @@
 
     /**
+     * Stops the remote control server
+     * @since 5861
+     */
+    public static void stop() {
+        RemoteControlHttpServer.stopRemoteControlHttpServer();
+    }
+
+    /**
      * Adds external request handler.
      * Can be used by plugins that want to use remote control.
Index: trunk/src/org/openstreetmap/josm/io/remotecontrol/RemoteControlHttpServer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/remotecontrol/RemoteControlHttpServer.java	(revision 5859)
+++ trunk/src/org/openstreetmap/josm/io/remotecontrol/RemoteControlHttpServer.java	(revision 5861)
@@ -32,7 +32,5 @@
     public static void restartRemoteControlHttpServer() {
         try {
-            if (instance != null) {
-                instance.stopServer();
-            }
+            stopRemoteControlHttpServer();
 
             instance = new RemoteControlHttpServer(DEFAULT_PORT);
@@ -43,4 +41,19 @@
         } catch (IOException ioe) {
             ioe.printStackTrace();
+        }
+    }
+
+    /**
+     * Stops the HTTP server
+     * @since 5861
+     */
+    public static void stopRemoteControlHttpServer() {
+        if (instance != null) {
+            try {
+                instance.stopServer();
+                instance = null;
+            } catch (IOException ioe) {
+                ioe.printStackTrace();
+            }
         }
     }
@@ -96,4 +109,5 @@
     {
         server.close();
+        System.out.println("RemoteControl::Server stopped.");
     }
 }
