Index: trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceTabbedPane.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceTabbedPane.java	(revision 16978)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceTabbedPane.java	(revision 16979)
@@ -45,4 +45,5 @@
 import org.openstreetmap.josm.gui.preferences.display.DisplayPreference;
 import org.openstreetmap.josm.gui.preferences.display.DrawingPreference;
+import org.openstreetmap.josm.gui.preferences.display.GPXPreference;
 import org.openstreetmap.josm.gui.preferences.display.LafPreference;
 import org.openstreetmap.josm.gui.preferences.display.LanguagePreference;
@@ -572,4 +573,5 @@
         SETTINGS_FACTORIES.add(new DisplayPreference.Factory());
         SETTINGS_FACTORIES.add(new DrawingPreference.Factory());
+        SETTINGS_FACTORIES.add(new GPXPreference.Factory());
         SETTINGS_FACTORIES.add(new ColorPreference.Factory());
         SETTINGS_FACTORIES.add(new LafPreference.Factory());
Index: trunk/src/org/openstreetmap/josm/gui/preferences/display/DrawingPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/display/DrawingPreference.java	(revision 16978)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/display/DrawingPreference.java	(revision 16979)
@@ -29,5 +29,5 @@
 
 /**
- * Map drawing preferences.
+ * "OSM Data" drawing preferences.
  */
 public class DrawingPreference implements SubPreferenceSetting {
@@ -49,5 +49,4 @@
     public static final BooleanProperty SOURCE_BOUNDS_PROP = new BooleanProperty("draw.data.downloaded_area", true);
 
-    private GPXSettingsPanel gpxPanel;
     private final JCheckBox directionHint = new JCheckBox(tr("Draw Direction Arrows"));
     private final JCheckBox headArrow = new JCheckBox(tr("Only on the head of a way."));
@@ -74,20 +73,4 @@
     @Override
     public void addGui(PreferenceTabbedPane gui) {
-        addOsmPane(gui);
-        addGpxPane(gui);
-    }
-
-    private void addGpxPane(PreferenceTabbedPane gui) {
-        gpxPanel = new GPXSettingsPanel();
-        gui.addValidationListener(gpxPanel);
-        JPanel panel = gpxPanel;
-
-        JScrollPane scrollpane = new JScrollPane(panel);
-        scrollpane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
-        GuiHelper.setDefaultIncrement(scrollpane);
-        gui.getDisplayPreference().addSubTab(this, tr("GPS Points"), scrollpane);
-    }
-
-    private void addOsmPane(PreferenceTabbedPane gui) {
         JPanel panel = new JPanel(new GridBagLayout());
         panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
@@ -217,5 +200,4 @@
     @Override
     public boolean ok() {
-        boolean restart = gpxPanel.savePreferences();
         OsmDataLayer.PROPERTY_HIDE_LABELS_WHILE_DRAGGING.put(hideLabelsWhileDragging.isSelected());
         Config.getPref().putBoolean("draw.data.area_outline_only", outlineOnly.isSelected());
@@ -243,5 +225,5 @@
         }
         Config.getPref().putInt("mappaint.node.virtual-size", vn);
-        return restart;
+        return false;
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/preferences/display/GPXPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/display/GPXPreference.java	(revision 16979)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/display/GPXPreference.java	(revision 16979)
@@ -0,0 +1,60 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.preferences.display;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import javax.swing.BorderFactory;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+
+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.SubPreferenceSetting;
+import org.openstreetmap.josm.gui.preferences.TabPreferenceSetting;
+import org.openstreetmap.josm.gui.util.GuiHelper;
+
+/**
+ * "GPS Points" drawing preferences.
+ */
+public class GPXPreference implements SubPreferenceSetting {
+
+    /**
+     * Factory used to create a new {@code GPXPreference}.
+     */
+    public static class Factory implements PreferenceSettingFactory {
+        @Override
+        public PreferenceSetting createPreferenceSetting() {
+            return new GPXPreference();
+        }
+    }
+
+    private GPXSettingsPanel gpxPanel;
+
+    @Override
+    public void addGui(PreferenceTabbedPane gui) {
+        gpxPanel = new GPXSettingsPanel();
+        gui.addValidationListener(gpxPanel);
+        JPanel panel = gpxPanel;
+
+        JScrollPane scrollpane = new JScrollPane(panel);
+        scrollpane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
+        GuiHelper.setDefaultIncrement(scrollpane);
+        gui.getDisplayPreference().addSubTab(this, tr("GPS Points"), scrollpane);
+    }
+
+    @Override
+    public boolean ok() {
+        return gpxPanel.savePreferences();
+    }
+
+    @Override
+    public boolean isExpert() {
+        return false;
+    }
+
+    @Override
+    public TabPreferenceSetting getTabPreferenceSetting(final PreferenceTabbedPane gui) {
+        return gui.getDisplayPreference();
+    }
+}
Index: trunk/test/unit/org/openstreetmap/josm/gui/preferences/PreferencesTestUtils.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/preferences/PreferencesTestUtils.java	(revision 16978)
+++ trunk/test/unit/org/openstreetmap/josm/gui/preferences/PreferencesTestUtils.java	(revision 16979)
@@ -20,15 +20,4 @@
     public static void doTestPreferenceSettingAddGui(
             PreferenceSettingFactory factory, Class<? extends DefaultTabPreferenceSetting> parentClass) {
-        doTestPreferenceSettingAddGui(factory, parentClass, 1);
-    }
-
-    /**
-     * Generic test for {@link PreferenceSetting#addGui(PreferenceTabbedPane)}.
-     * @param factory setting factory to test
-     * @param parentClass optional parent setting, can be {@code null}
-     * @param increment expected tab number increment
-     */
-    public static void doTestPreferenceSettingAddGui(
-            PreferenceSettingFactory factory, Class<? extends DefaultTabPreferenceSetting> parentClass, int increment) {
         PreferenceSetting setting = factory.createPreferenceSetting();
         PreferenceTabbedPane tabPane = new PreferenceTabbedPane();
@@ -37,5 +26,5 @@
         setting.addGui(tabPane);
         if (parentClass != null) {
-            assertEquals(tabs + increment, tabPane.getSetting(parentClass).getTabPane().getTabCount());
+            assertEquals(tabs + 1, tabPane.getSetting(parentClass).getTabPane().getTabCount());
             assertEquals(tabPane.getSetting(parentClass), ((SubPreferenceSetting) setting).getTabPreferenceSetting(tabPane));
         }
Index: trunk/test/unit/org/openstreetmap/josm/gui/preferences/display/DrawingPreferenceTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/preferences/display/DrawingPreferenceTest.java	(revision 16978)
+++ trunk/test/unit/org/openstreetmap/josm/gui/preferences/display/DrawingPreferenceTest.java	(revision 16979)
@@ -35,5 +35,5 @@
     @Test
     public void testAddGui() {
-        PreferencesTestUtils.doTestPreferenceSettingAddGui(new DrawingPreference.Factory(), DisplayPreference.class, 2);
+        PreferencesTestUtils.doTestPreferenceSettingAddGui(new DrawingPreference.Factory(), DisplayPreference.class);
     }
 }
Index: trunk/test/unit/org/openstreetmap/josm/gui/preferences/display/GPXPreferenceTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/preferences/display/GPXPreferenceTest.java	(revision 16979)
+++ trunk/test/unit/org/openstreetmap/josm/gui/preferences/display/GPXPreferenceTest.java	(revision 16979)
@@ -0,0 +1,39 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.preferences.display;
+
+import static org.junit.Assert.assertNotNull;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.gui.preferences.PreferencesTestUtils;
+
+/**
+ * Unit tests of {@link GPXPreference} class.
+ */
+public class GPXPreferenceTest {
+
+    /**
+     * Setup test.
+     */
+    @BeforeClass
+    public static void setUpBeforeClass() {
+        JOSMFixture.createUnitTestFixture().init();
+    }
+
+    /**
+     * Unit test of {@link GPXPreference.Factory}.
+     */
+    @Test
+    public void testGPXPreference() {
+        assertNotNull(new GPXPreference.Factory().createPreferenceSetting());
+    }
+
+    /**
+     * Unit test of {@link GPXPreference#addGui}.
+     */
+    @Test
+    public void testAddGui() {
+        PreferencesTestUtils.doTestPreferenceSettingAddGui(new GPXPreference.Factory(), DisplayPreference.class);
+    }
+}
