Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java	(revision 6970)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java	(revision 6971)
@@ -97,4 +97,6 @@
     /** Property key for proxy password */
     public static final String PROXY_PASS = "proxy.pass";
+    /** Property key for proxy exceptions list */
+    public static final String PROXY_EXCEPTIONS = "proxy.exceptions";
 
     private Map<ProxyPolicy, JRadioButton> rbProxyPolicy;
Index: trunk/src/org/openstreetmap/josm/io/DefaultProxySelector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/DefaultProxySelector.java	(revision 6970)
+++ trunk/src/org/openstreetmap/josm/io/DefaultProxySelector.java	(revision 6971)
@@ -11,4 +11,5 @@
 import java.net.SocketAddress;
 import java.net.URI;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
@@ -65,4 +66,5 @@
     private final Set<String> errorResources = new HashSet<String>();
     private final Set<String> errorMessages = new HashSet<String>();
+    private Set<String> proxyExceptions;
 
     /**
@@ -138,4 +140,8 @@
             }
         }
+        proxyExceptions = new HashSet<String>(
+            Main.pref.getCollection(ProxyPreferencesPanel.PROXY_EXCEPTIONS,
+                    Arrays.asList(new String[]{"localhost", "127.0.0.1"}))
+        );
     }
 
@@ -187,5 +193,5 @@
     @Override
     public List<Proxy> select(URI uri) {
-        if (uri != null && "localhost".equals(uri.getHost())) {
+        if (uri != null && proxyExceptions.contains(uri.getHost())) {
             return NO_PROXY_LIST;
         }
