Index: /trunk/src/org/openstreetmap/josm/gui/GettingStarted.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 6524)
+++ /trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 6525)
@@ -25,4 +25,6 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Version;
+import org.openstreetmap.josm.gui.preferences.server.ProxyPreference;
+import org.openstreetmap.josm.gui.preferences.server.ProxyPreferenceListener;
 import org.openstreetmap.josm.gui.widgets.JosmEditorPane;
 import org.openstreetmap.josm.io.CacheCustomContent;
@@ -31,6 +33,10 @@
 import org.openstreetmap.josm.tools.WikiReader;
 
-public final class GettingStarted extends JPanel {
+public final class GettingStarted extends JPanel implements ProxyPreferenceListener {
+
+    private final LinkGeneral lg;
     private String content = "";
+    private boolean contentInitialized = false;
+
     private static final String STYLE = "<style type=\"text/css\">\n"
             + "body {font-family: sans-serif; font-weight: bold; }\n"
@@ -113,5 +119,5 @@
     public GettingStarted() {
         super(new BorderLayout());
-        final LinkGeneral lg = new LinkGeneral("<html>" + STYLE + "<h1>" + "JOSM - " + tr("Java OpenStreetMap Editor")
+        lg = new LinkGeneral("<html>" + STYLE + "<h1>" + "JOSM - " + tr("Java OpenStreetMap Editor")
                 + "</h1><h2 align=\"center\">" + tr("Downloading \"Message of the day\"") + "</h2></html>");
         // clear the build-in command ctrl+shift+O, because it is used as shortcut in JOSM
@@ -122,15 +128,25 @@
         add(scroller, BorderLayout.CENTER);
 
+        getMOTD();
+
+        new FileDrop(scroller);
+    }
+
+    private void getMOTD() {
         // Asynchronously get MOTD to speed-up JOSM startup
         Thread t = new Thread(new Runnable() {
             @Override
             public void run() {
-                if (content.isEmpty() && Main.pref.getBoolean("help.displaymotd", true)) {
+                if (!contentInitialized && Main.pref.getBoolean("help.displaymotd", true)) {
                     try {
                         content = new MotdContent().updateIfRequiredString();
+                        contentInitialized = true;
+                        ProxyPreference.removeProxyPreferenceListener(GettingStarted.this);
                     } catch (IOException ex) {
                         Main.warn(tr("Failed to read MOTD. Exception was: {0}", ex.toString()));
                         content = "<html>" + STYLE + "<h1>" + "JOSM - " + tr("Java OpenStreetMap Editor")
                                 + "</h1>\n<h2 align=\"center\">(" + tr("Message of the day not available") + ")</h2></html>";
+                        // In case of MOTD not loaded because of proxy error, listen to preference changes to retry after update
+                        ProxyPreference.addProxyPreferenceListener(GettingStarted.this);
                     }
                 }
@@ -146,6 +162,4 @@
         t.setDaemon(true);
         t.start();
-
-        new FileDrop(scroller);
     }
 
@@ -163,3 +177,8 @@
         return sb.toString();
     }
+
+    @Override
+    public void proxyPreferenceChanged() {
+        getMOTD();
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/ServerAccessPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/ServerAccessPreference.java	(revision 6524)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/ServerAccessPreference.java	(revision 6525)
@@ -45,5 +45,5 @@
      * @return the scroll pane
      */
-    protected JScrollPane wrapVerticallyScrollablePanel(VerticallyScrollablePanel panel) {
+    public static JScrollPane wrapVerticallyScrollablePanel(VerticallyScrollablePanel panel) {
         JScrollPane sp = new JScrollPane(panel);
         sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
@@ -109,11 +109,4 @@
         gui.createPreferenceTab(this).add(buildContentPanel(), gc);
 
-        initFromPreferences();
-    }
-
-    /**
-     * Initializes the configuration panel with values from the preferences
-     */
-    public void initFromPreferences() {
         pnlApiUrlPreferences.initFromPreferences();
     }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/server/AuthenticationPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/server/AuthenticationPreference.java	(revision 6524)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/server/AuthenticationPreference.java	(revision 6525)
@@ -7,4 +7,5 @@
 import org.openstreetmap.josm.gui.preferences.PreferenceSettingFactory;
 import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
+import org.openstreetmap.josm.gui.preferences.ServerAccessPreference;
 import org.openstreetmap.josm.gui.preferences.SubPreferenceSetting;
 import org.openstreetmap.josm.gui.preferences.TabPreferenceSetting;
@@ -36,5 +37,6 @@
         pnlAuthPreferences = new AuthenticationPreferencesPanel();
         gui.getServerPreference().addApiUrlChangeListener(pnlAuthPreferences);
-        gui.getServerPreference().addSubTab(this, tr("Authentication"), pnlAuthPreferences,
+        gui.getServerPreference().addSubTab(this, tr("Authentication"),
+                ServerAccessPreference.wrapVerticallyScrollablePanel(pnlAuthPreferences),
                 tr("Configure your identity and how to authenticate at the OSM server"));
     }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/server/AuthenticationPreferencesPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/server/AuthenticationPreferencesPanel.java	(revision 6524)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/server/AuthenticationPreferencesPanel.java	(revision 6525)
@@ -106,4 +106,5 @@
     public AuthenticationPreferencesPanel() {
         build();
+        initFromPreferences();
         HelpUtil.setHelpContext(this, HelpUtil.ht("/Preferences/Connection#AuthenticationSettings"));
     }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreference.java	(revision 6524)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreference.java	(revision 6525)
@@ -4,7 +4,11 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.util.HashSet;
+import java.util.Set;
+
 import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
 import org.openstreetmap.josm.gui.preferences.PreferenceSettingFactory;
 import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
+import org.openstreetmap.josm.gui.preferences.ServerAccessPreference;
 import org.openstreetmap.josm.gui.preferences.SubPreferenceSetting;
 import org.openstreetmap.josm.gui.preferences.TabPreferenceSetting;
@@ -26,5 +30,7 @@
     }
 
-    ProxyPreferencesPanel pnlProxyPreferences;
+    private static Set<ProxyPreferenceListener> listeners = new HashSet<ProxyPreferenceListener>();
+    
+    private ProxyPreferencesPanel pnlProxyPreferences;
 
     private ProxyPreference() {
@@ -35,5 +41,6 @@
     public void addGui(PreferenceTabbedPane gui) {
         pnlProxyPreferences = new ProxyPreferencesPanel();
-        gui.getServerPreference().addSubTab(this, tr("Proxy settings"), pnlProxyPreferences,
+        gui.getServerPreference().addSubTab(this, tr("Proxy settings"),
+                ServerAccessPreference.wrapVerticallyScrollablePanel(pnlProxyPreferences),
                 tr("Configure whether to use a proxy server"));
     }
@@ -42,4 +49,7 @@
     public boolean ok() {
         pnlProxyPreferences.saveToPreferences();
+        for (ProxyPreferenceListener listener : listeners) {
+            listener.proxyPreferenceChanged();
+        }
         return false;
     }
@@ -54,3 +64,29 @@
         return gui.getServerPreference();
     }
+    
+    /**
+     * Adds a new ProxyPreferenceListener.
+     * @param listener the listener to add
+     * @return {@code true} if the listener has been added, {@code false} otherwise
+     * @since 6525
+     */
+    public static boolean addProxyPreferenceListener(ProxyPreferenceListener listener) {
+        if (listener != null) {
+            return listeners.add(listener);
+        }
+        return false;
+    }
+
+    /**
+     * Removes a ProxyPreferenceListener.
+     * @param listener the listener to remove
+     * @return {@code true} if the listener has been removed, {@code false} otherwise
+     * @since 6525
+     */
+    public static boolean removeProxyPreferenceListener(ProxyPreferenceListener listener) {
+        if (listener != null) {
+            return listeners.remove(listener);
+        }
+        return false;
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferenceListener.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferenceListener.java	(revision 6525)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferenceListener.java	(revision 6525)
@@ -0,0 +1,14 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.preferences.server;
+
+/**
+ * Listener called when proxy settings are updated.
+ * @since 6525
+ */
+public interface ProxyPreferenceListener {
+
+    /**
+     * Method called when proxy settings are updated.
+     */
+    public void proxyPreferenceChanged();
+}
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java	(revision 6524)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java	(revision 6525)
@@ -360,4 +360,7 @@
     }
 
+    /**
+     * Constructs a new {@code ProxyPreferencesPanel}.
+     */
     public ProxyPreferencesPanel() {
         setLayout(new GridBagLayout());
