Index: trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceTabbedPane.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceTabbedPane.java	(revision 17161)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceTabbedPane.java	(revision 17162)
@@ -56,6 +56,4 @@
 import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference;
 import org.openstreetmap.josm.gui.preferences.remotecontrol.RemoteControlPreference;
-import org.openstreetmap.josm.gui.preferences.server.ConnectionPreference;
-import org.openstreetmap.josm.gui.preferences.server.OverpassServerPreference;
 import org.openstreetmap.josm.gui.preferences.server.ProxyPreference;
 import org.openstreetmap.josm.gui.preferences.server.ServerAccessPreference;
@@ -583,8 +581,6 @@
         SETTINGS_FACTORIES.add(new LanguagePreference.Factory());
 
-        SETTINGS_FACTORIES.add(new ConnectionPreference.Factory());
         SETTINGS_FACTORIES.add(new ServerAccessPreference.Factory());
         SETTINGS_FACTORIES.add(new ProxyPreference.Factory());
-        SETTINGS_FACTORIES.add(new OverpassServerPreference.Factory());
         SETTINGS_FACTORIES.add(new MapPreference.Factory());
         SETTINGS_FACTORIES.add(new ProjectionPreference.Factory());
Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/ConnectionPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/ConnectionPreference.java	(revision 17161)
+++ 	(revision )
@@ -1,50 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.gui.preferences.server;
-
-import static org.openstreetmap.josm.tools.I18n.tr;
-
-import javax.swing.JTabbedPane;
-
-import org.openstreetmap.josm.gui.preferences.DefaultTabPreferenceSetting;
-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.tools.GBC;
-
-/**
- * Connection preferences.
- * @since 17160
- */
-public final class ConnectionPreference extends DefaultTabPreferenceSetting {
-
-    /**
-     * Factory used to create a new {@code AuthenticationPreference}.
-     */
-    public static class Factory implements PreferenceSettingFactory {
-        @Override
-        public PreferenceSetting createPreferenceSetting() {
-            return new ConnectionPreference();
-        }
-    }
-
-    private ConnectionPreference() {
-        super(/* ICON(preferences/) */ "connection", tr("Connection Settings"),
-                tr("Connection Settings for the OSM server."), false, new JTabbedPane());
-    }
-
-    @Override
-    public void addGui(PreferenceTabbedPane gui) {
-        gui.createPreferenceTab(this).add(getTabPane(), GBC.eol().fill(GBC.BOTH));
-    }
-
-    @Override
-    public boolean ok() {
-        return false;
-    }
-
-    @Override
-    public boolean isExpert() {
-        return false;
-    }
-
-}
Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/OverpassServerPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/OverpassServerPanel.java	(revision 17162)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/server/OverpassServerPanel.java	(revision 17162)
@@ -0,0 +1,57 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.preferences.server;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.GridBagLayout;
+
+import javax.swing.BorderFactory;
+import javax.swing.Box;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.openstreetmap.josm.actions.ExpertToggleAction;
+import org.openstreetmap.josm.gui.widgets.HistoryComboBox;
+import org.openstreetmap.josm.io.OverpassDownloadReader;
+import org.openstreetmap.josm.tools.GBC;
+
+/**
+ * Preferences related to Overpass API servers.
+ *
+ * @since 17162
+ */
+public class OverpassServerPanel extends JPanel {
+
+    private final HistoryComboBox overpassServer = new HistoryComboBox();
+    private final JCheckBox forMultiFetch = new JCheckBox(tr("Use Overpass server for object downloads"));
+
+    OverpassServerPanel() {
+        super(new GridBagLayout());
+        ExpertToggleAction.addVisibilitySwitcher(this);
+        final JPanel panel = this;
+        panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
+        panel.add(new JLabel(tr("Overpass server: ")), GBC.std().insets(5, 5, 5, 5));
+        panel.add(overpassServer, GBC.eop().fill(GBC.HORIZONTAL));
+        panel.add(forMultiFetch, GBC.eop());
+        panel.add(Box.createVerticalGlue(), GBC.eol().fill());
+    }
+
+    /**
+     * Initializes the panel from preferences
+     */
+    public final void initFromPreferences() {
+        overpassServer.setPossibleItems(OverpassDownloadReader.OVERPASS_SERVER_HISTORY.get());
+        overpassServer.setText(OverpassDownloadReader.OVERPASS_SERVER.get());
+        forMultiFetch.setSelected(OverpassDownloadReader.FOR_MULTI_FETCH.get());
+    }
+
+    /**
+     * Saves the current values to the preferences
+     */
+    public final void saveToPreferences() {
+        OverpassDownloadReader.OVERPASS_SERVER.put(overpassServer.getText());
+        OverpassDownloadReader.OVERPASS_SERVER_HISTORY.put(overpassServer.getHistory());
+        OverpassDownloadReader.FOR_MULTI_FETCH.put(forMultiFetch.isSelected());
+    }
+}
Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/OverpassServerPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/OverpassServerPreference.java	(revision 17161)
+++ 	(revision )
@@ -1,75 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.gui.preferences.server;
-
-import static org.openstreetmap.josm.tools.I18n.tr;
-
-import java.awt.GridBagLayout;
-
-import javax.swing.BorderFactory;
-import javax.swing.Box;
-import javax.swing.JCheckBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-
-import org.openstreetmap.josm.gui.preferences.DefaultTabPreferenceSetting;
-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.widgets.HistoryComboBox;
-import org.openstreetmap.josm.io.OverpassDownloadReader;
-import org.openstreetmap.josm.tools.GBC;
-
-/**
- * Preferences related to Overpass API servers.
- *
- * @since 9142
- */
-public class OverpassServerPreference extends DefaultTabPreferenceSetting {
-
-    private final HistoryComboBox overpassServer = new HistoryComboBox();
-    private final JCheckBox forMultiFetch = new JCheckBox(tr("Use Overpass server for object downloads"));
-
-    /**
-     * Factory used to create a new {@link OverpassServerPreference}.
-     */
-    public static class Factory implements PreferenceSettingFactory {
-        @Override
-        public PreferenceSetting createPreferenceSetting() {
-            return new OverpassServerPreference();
-        }
-    }
-
-    OverpassServerPreference() {
-        super(null, tr("Overpass server"), tr("Configure Overpass server"));
-    }
-
-    @Override
-    public void addGui(PreferenceTabbedPane gui) {
-        final JPanel panel = new JPanel(new GridBagLayout());
-
-        panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
-        panel.add(new JLabel(tr("Overpass server: ")), GBC.std().insets(5, 5, 5, 5));
-        panel.add(overpassServer, GBC.eop().fill(GBC.HORIZONTAL));
-        overpassServer.setPossibleItems(OverpassDownloadReader.OVERPASS_SERVER_HISTORY.get());
-        overpassServer.setText(OverpassDownloadReader.OVERPASS_SERVER.get());
-
-        panel.add(forMultiFetch, GBC.eop());
-        forMultiFetch.setSelected(OverpassDownloadReader.FOR_MULTI_FETCH.get());
-
-        panel.add(Box.createVerticalGlue(), GBC.eol().fill());
-        gui.createPreferenceTab(this).add(panel, GBC.eol().fill());
-    }
-
-    @Override
-    public boolean ok() {
-        OverpassDownloadReader.OVERPASS_SERVER.put(overpassServer.getText());
-        OverpassDownloadReader.OVERPASS_SERVER_HISTORY.put(overpassServer.getHistory());
-        OverpassDownloadReader.FOR_MULTI_FETCH.put(forMultiFetch.isSelected());
-        return false;
-    }
-
-    @Override
-    public boolean isExpert() {
-        return true;
-    }
-}
Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java	(revision 17161)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java	(revision 17162)
@@ -192,69 +192,30 @@
 
         // radio button "No proxy"
-        gc.gridx = 0;
-        gc.gridy = 0;
-        gc.fill = GridBagConstraints.HORIZONTAL;
-        gc.anchor = GridBagConstraints.NORTHWEST;
-        gc.weightx = 0.0;
-        pnl.add(rbProxyPolicy.get(ProxyPolicy.NO_PROXY), gc);
-
-        gc.gridx = 1;
-        gc.weightx = 1.0;
-        pnl.add(new JLabel(tr("No proxy")), gc);
+        rbProxyPolicy.get(ProxyPolicy.NO_PROXY).setText(tr("No proxy"));
+        pnl.add(rbProxyPolicy.get(ProxyPolicy.NO_PROXY), GBC.eop().anchor(GBC.NORTHWEST));
 
         // radio button "System settings"
-        gc.gridx = 0;
-        gc.gridy = 1;
-        gc.weightx = 0.0;
-        pnl.add(rbProxyPolicy.get(ProxyPolicy.USE_SYSTEM_SETTINGS), gc);
-
-        gc.gridx = 1;
-        gc.weightx = 1.0;
-        String msg;
-        if (DefaultProxySelector.willJvmRetrieveSystemProxies()) {
-            msg = tr("Use standard system settings");
-        } else {
-            msg = tr("Use standard system settings (disabled. Start JOSM with <tt>-Djava.net.useSystemProxies=true</tt> to enable)");
-        }
-        pnl.add(new JMultilineLabel("<html>" + msg + "</html>"), gc);
+        pnl.add(rbProxyPolicy.get(ProxyPolicy.USE_SYSTEM_SETTINGS), GBC.eol());
+        rbProxyPolicy.get(ProxyPolicy.USE_SYSTEM_SETTINGS).setText(tr("Use standard system settings"));
+        if (!DefaultProxySelector.willJvmRetrieveSystemProxies()) {
+            String msg = tr("Use standard system settings (disabled. Start JOSM with <tt>-Djava.net.useSystemProxies=true</tt> to enable)");
+            pnl.add(new JMultilineLabel("<html>" + msg + "</html>"), GBC.eop());
+        }
 
         // radio button http proxy
-        gc.gridx = 0;
-        gc.gridy = 2;
-        gc.weightx = 0.0;
-        pnl.add(rbProxyPolicy.get(ProxyPolicy.USE_HTTP_PROXY), gc);
-
-        gc.gridx = 1;
-        gc.weightx = 1.0;
-        pnl.add(new JLabel(tr("Manually configure a HTTP proxy")), gc);
+        rbProxyPolicy.get(ProxyPolicy.USE_HTTP_PROXY).setText(tr("Manually configure a HTTP proxy"));
+        pnl.add(rbProxyPolicy.get(ProxyPolicy.USE_HTTP_PROXY), GBC.eol());
 
         // the panel with the http proxy configuration parameters
-        gc.gridx = 1;
-        gc.gridy = 3;
-        gc.fill = GridBagConstraints.HORIZONTAL;
-        gc.weightx = 1.0;
-        gc.weighty = 0.0;
         pnlHttpProxyConfigurationPanel = buildHttpProxyConfigurationPanel();
-        pnl.add(pnlHttpProxyConfigurationPanel, gc);
+        pnl.add(pnlHttpProxyConfigurationPanel, GBC.eop().fill(GBC.HORIZONTAL));
 
         // radio button SOCKS proxy
-        gc.gridx = 0;
-        gc.gridy = 4;
-        gc.weightx = 0.0;
-        pnl.add(rbProxyPolicy.get(ProxyPolicy.USE_SOCKS_PROXY), gc);
-
-        gc.gridx = 1;
-        gc.weightx = 1.0;
-        pnl.add(new JLabel(tr("Use a SOCKS proxy")), gc);
+        pnl.add(rbProxyPolicy.get(ProxyPolicy.USE_SOCKS_PROXY), GBC.eol());
+        rbProxyPolicy.get(ProxyPolicy.USE_SOCKS_PROXY).setText(tr("Use a SOCKS proxy"));
 
         // the panel with the SOCKS configuration parameters
-        gc.gridx = 1;
-        gc.gridy = 5;
-        gc.fill = GridBagConstraints.BOTH;
-        gc.anchor = GridBagConstraints.WEST;
-        gc.weightx = 1.0;
-        gc.weighty = 0.0;
         pnlSocksProxyConfigurationPanel = buildSocksProxyConfigurationPanel();
-        pnl.add(pnlSocksProxyConfigurationPanel, gc);
+        pnl.add(pnlSocksProxyConfigurationPanel, GBC.eop().fill(GBC.HORIZONTAL));
 
         return pnl;
Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/ServerAccessPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/ServerAccessPreference.java	(revision 17161)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/server/ServerAccessPreference.java	(revision 17162)
@@ -10,5 +10,4 @@
 import javax.swing.JPanel;
 import javax.swing.JSeparator;
-import javax.swing.JTabbedPane;
 
 import org.openstreetmap.josm.gui.help.HelpUtil;
@@ -39,7 +38,8 @@
     /** the panel for messages notifier preferences */
     private final FeaturesPanel pnlFeaturesPreferences = new FeaturesPanel();
+    private final OverpassServerPanel pnlOverpassPreferences = new OverpassServerPanel();
 
     private ServerAccessPreference() {
-        super(null, tr("OSM Server"), tr("Connection Settings for the OSM server."), false, new JTabbedPane());
+        super(/* ICON(preferences/) */ "connection", tr("OSM Server"), tr("Connection Settings for the OSM server."));
     }
 
@@ -61,8 +61,11 @@
         panel.add(new JSeparator(), GBC.eop().fill(GBC.HORIZONTAL));
         panel.add(pnlFeaturesPreferences, GBC.eop().fill(GBC.HORIZONTAL));
+        panel.add(new JSeparator(), GBC.eop().fill(GBC.HORIZONTAL));
+        panel.add(pnlOverpassPreferences, GBC.eop().fill(GBC.HORIZONTAL));
 
         pnlApiUrlPreferences.initFromPreferences();
         pnlAuthPreferences.initFromPreferences();
         pnlFeaturesPreferences.initFromPreferences();
+        pnlOverpassPreferences.initFromPreferences();
         addApiUrlChangeListener(pnlAuthPreferences);
 
@@ -81,4 +84,5 @@
         // save message notifications preferences. To be done after authentication preferences.
         pnlFeaturesPreferences.saveToPreferences();
+        pnlOverpassPreferences.saveToPreferences();
         return false;
     }
Index: trunk/test/unit/org/openstreetmap/josm/gui/preferences/server/ConnectionPreferenceTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/preferences/server/ConnectionPreferenceTest.java	(revision 17161)
+++ 	(revision )
@@ -1,40 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.gui.preferences.server;
-
-import static org.junit.Assert.assertNotNull;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.openstreetmap.josm.gui.preferences.PreferencesTestUtils;
-import org.openstreetmap.josm.testutils.JOSMTestRules;
-
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-
-/**
- * Unit tests of {@link ConnectionPreference} class.
- */
-public class ConnectionPreferenceTest {
-
-    /**
-     * Setup tests
-     */
-    @Rule
-    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
-    public JOSMTestRules test = new JOSMTestRules().preferences();
-
-    /**
-     * Unit test of {@link ConnectionPreference#AuthenticationPreference}.
-     */
-    @Test
-    public void testAuthenticationPreference() {
-        assertNotNull(new ConnectionPreference.Factory().createPreferenceSetting());
-    }
-
-    /**
-     * Unit test of {@link ConnectionPreference#addGui}.
-     */
-    @Test
-    public void testAddGui() {
-        PreferencesTestUtils.doTestPreferenceSettingAddGui(new ConnectionPreference.Factory(), ServerAccessPreference.class);
-    }
-}
Index: trunk/test/unit/org/openstreetmap/josm/gui/preferences/server/OverpassServerPreferenceTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/preferences/server/OverpassServerPreferenceTest.java	(revision 17161)
+++ 	(revision )
@@ -1,40 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.gui.preferences.server;
-
-import static org.junit.Assert.assertNotNull;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.openstreetmap.josm.gui.preferences.PreferencesTestUtils;
-import org.openstreetmap.josm.testutils.JOSMTestRules;
-
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-
-/**
- * Unit tests of {@link OverpassServerPreference} class.
- */
-public class OverpassServerPreferenceTest {
-
-    /**
-     * Setup tests
-     */
-    @Rule
-    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
-    public JOSMTestRules test = new JOSMTestRules().preferences();
-
-    /**
-     * Unit test of {@link OverpassServerPreference#OverpassServerPreference}.
-     */
-    @Test
-    public void testOverpassServerPreference() {
-        assertNotNull(new OverpassServerPreference.Factory().createPreferenceSetting());
-    }
-
-    /**
-     * Unit test of {@link OverpassServerPreference#addGui}.
-     */
-    @Test
-    public void testAddGui() {
-        PreferencesTestUtils.doTestPreferenceSettingAddGui(new OverpassServerPreference.Factory(), ServerAccessPreference.class);
-    }
-}
