Index: /trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/Main.java	(revision 6470)
+++ /trunk/src/org/openstreetmap/josm/Main.java	(revision 6471)
@@ -18,4 +18,5 @@
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.net.URL;
 import java.text.MessageFormat;
 import java.util.ArrayList;
@@ -54,4 +55,5 @@
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.Preferences;
+import org.openstreetmap.josm.data.ServerSidePreferences;
 import org.openstreetmap.josm.data.UndoRedoHandler;
 import org.openstreetmap.josm.data.coor.CoordinateFormat;
@@ -335,4 +337,21 @@
 
     /**
+     * Initializes {@code Main.pref} in applet context.
+     * @param serverURL The server URL hosting the user preferences.
+     * @since 6471
+     */
+    public static void initAppletPreferences(URL serverURL) {
+        Main.pref = new ServerSidePreferences(serverURL);
+    }
+
+    /**
+     * Initializes {@code Main.pref} in normal application context.
+     * @since 6471
+     */
+    public static void initApplicationPreferences() {
+        Main.pref = new Preferences();
+    }
+
+    /**
      * Set or clear (if passed <code>null</code>) the map.
      * @param map The map to set {@link Main#map} to. Can be null.
Index: /trunk/src/org/openstreetmap/josm/gui/MainApplet.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MainApplet.java	(revision 6470)
+++ /trunk/src/org/openstreetmap/josm/gui/MainApplet.java	(revision 6471)
@@ -101,5 +101,5 @@
         Main.platform.preStartupHook();
 
-        Main.pref = new ServerSidePreferences(getCodeBase());
+        Main.initAppletPreferences(getCodeBase());
 
         String lang = getParameter("language");
@@ -166,5 +166,5 @@
         Main.applet = true;
         MainApplet applet = new MainApplet();
-        Main.pref = new ServerSidePreferences(applet.getCodeBase());
+        Main.initAppletPreferences(applet.getCodeBase());
         applet.setStub(new AppletStub() {
             @Override
Index: /trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 6470)
+++ /trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 6471)
@@ -273,5 +273,5 @@
         }
 
-        Main.pref = new Preferences();
+        initApplicationPreferences();
 
         Policy.setPolicy(new Policy() {
Index: /trunk/test/functional/org/openstreetmap/josm/fixtures/JOSMFixture.java
===================================================================
--- /trunk/test/functional/org/openstreetmap/josm/fixtures/JOSMFixture.java	(revision 6470)
+++ /trunk/test/functional/org/openstreetmap/josm/fixtures/JOSMFixture.java	(revision 6471)
@@ -58,5 +58,5 @@
         }
         System.setProperty("josm.home", josmHome);
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
         I18n.init();
         // initialize the plaform hook, and
Index: /trunk/test/unit/org/openstreetmap/josm/actions/search/SearchCompilerTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/actions/search/SearchCompilerTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/actions/search/SearchCompilerTest.java	(revision 6471)
@@ -13,5 +13,5 @@
     @Before
     public void setUp() throws Exception {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/corrector/ReverseWayTagCorrectorTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/corrector/ReverseWayTagCorrectorTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/corrector/ReverseWayTagCorrectorTest.java	(revision 6471)
@@ -19,5 +19,5 @@
     @BeforeClass
     public static void setUp() {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
     
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/APIDataSetTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/APIDataSetTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/APIDataSetTest.java	(revision 6471)
@@ -19,5 +19,5 @@
     @BeforeClass
     public static void init() {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/DataSetMergerTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/DataSetMergerTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/DataSetMergerTest.java	(revision 6471)
@@ -63,5 +63,5 @@
     @BeforeClass
     public static void init() {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/FilterTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/FilterTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/FilterTest.java	(revision 6471)
@@ -30,5 +30,5 @@
     public static void setUp() {
         Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveKeyHandling.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveKeyHandling.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveKeyHandling.java	(revision 6471)
@@ -19,5 +19,5 @@
     @BeforeClass
     public static void init() {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveTest.java	(revision 6471)
@@ -17,5 +17,5 @@
     @BeforeClass
     public static void init() {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/QuadBucketsTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/QuadBucketsTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/QuadBucketsTest.java	(revision 6471)
@@ -24,5 +24,5 @@
     @BeforeClass
     public static void init() {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/RelationTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/RelationTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/RelationTest.java	(revision 6471)
@@ -17,5 +17,5 @@
     public static void setUp() {
         Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeSourceBuildingVisitorTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeSourceBuildingVisitorTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeSourceBuildingVisitorTest.java	(revision 6471)
@@ -38,5 +38,5 @@
     public static void setUp() {
         Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/data/projection/ProjectionRegressionTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/projection/ProjectionRegressionTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/data/projection/ProjectionRegressionTest.java	(revision 6471)
@@ -149,5 +149,5 @@
     @BeforeClass
     public static void setUp() {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/DuplicateNodeTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/DuplicateNodeTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/DuplicateNodeTest.java	(revision 6471)
@@ -25,5 +25,5 @@
     public static void setUp() {
         Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/OpeningHourTestTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/OpeningHourTestTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/OpeningHourTestTest.java	(revision 6471)
@@ -22,5 +22,5 @@
     @Before
     public void setUp() throws Exception {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
         OPENING_HOUR_TEST.initialize();
     }
Index: /trunk/test/unit/org/openstreetmap/josm/gui/SystemOfMeasurementTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/SystemOfMeasurementTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/SystemOfMeasurementTest.java	(revision 6471)
@@ -23,5 +23,5 @@
     @BeforeClass
     public static void setUp() {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
     
Index: /trunk/test/unit/org/openstreetmap/josm/gui/conflict/nodes/NodeListMergeModelTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/conflict/nodes/NodeListMergeModelTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/conflict/nodes/NodeListMergeModelTest.java	(revision 6471)
@@ -32,5 +32,5 @@
     @BeforeClass
     public static void init() {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/gui/conflict/properties/PropertiesMergeModelTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/conflict/properties/PropertiesMergeModelTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/conflict/properties/PropertiesMergeModelTest.java	(revision 6471)
@@ -48,5 +48,5 @@
     public static void init() {
         Main.setProjection(Projections.getProjectionByCode("EPSG:4326"));
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/gui/conflict/tags/TagMergeItemTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/conflict/tags/TagMergeItemTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/conflict/tags/TagMergeItemTest.java	(revision 6471)
@@ -18,5 +18,5 @@
     @BeforeClass
     public static void init() {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/gui/conflict/tags/TagMergeModelTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/conflict/tags/TagMergeModelTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/conflict/tags/TagMergeModelTest.java	(revision 6471)
@@ -24,5 +24,5 @@
     @BeforeClass
     public static void init() {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSorterTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSorterTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSorterTest.java	(revision 6471)
@@ -26,5 +26,5 @@
     @BeforeClass
     public static void loadData() throws FileNotFoundException, IllegalDataException {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
         Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
         testDataset = OsmReader.parseDataSet(new FileInputStream("data_nodist/relation_sort.osm"), NullProgressMonitor.INSTANCE);
Index: /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculatorTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculatorTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/sort/WayConnectionTypeCalculatorTest.java	(revision 6471)
@@ -27,5 +27,5 @@
     @BeforeClass
     public static void loadData() throws FileNotFoundException, IllegalDataException {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
         Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
         testDataset = OsmReader.parseDataSet(new FileInputStream("data_nodist/relation_sort.osm"), NullProgressMonitor.INSTANCE);
Index: /trunk/test/unit/org/openstreetmap/josm/gui/tagging/TaggingPresetReaderTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/tagging/TaggingPresetReaderTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/tagging/TaggingPresetReaderTest.java	(revision 6471)
@@ -23,5 +23,5 @@
     @BeforeClass
     public static void setUpClass() {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
         testdataroot = System.getProperty("josm.test.data");
         if (testdataroot == null || testdataroot.isEmpty()) {
Index: /trunk/test/unit/org/openstreetmap/josm/tools/TextTagParserTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/TextTagParserTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/TextTagParserTest.java	(revision 6471)
@@ -15,5 +15,5 @@
     @BeforeClass
     public static void before() {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/tools/UtilsTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/UtilsTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/UtilsTest.java	(revision 6471)
@@ -74,5 +74,5 @@
     @Test
     public void testOpenUrlGzip() throws Exception {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
         final BufferedReader x = Utils.openURLReaderAndDecompress(new URL("http://www.openstreetmap.org/trace/1613906/data"), true);
         Assert.assertTrue(x.readLine().startsWith("<?xml version="));
@@ -82,5 +82,5 @@
     @Test
     public void testOpenUrlBzip() throws Exception {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
         final BufferedReader x = Utils.openURLReaderAndDecompress(new URL("http://www.openstreetmap.org/trace/785544/data"), true);
         Assert.assertTrue(x.readLine().startsWith("<?xml version="));
Index: /trunk/test/unit/org/openstreetmap/josm/tools/template_engine/TemplateEngineTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/template_engine/TemplateEngineTest.java	(revision 6470)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/template_engine/TemplateEngineTest.java	(revision 6471)
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.tools.template_engine;
-
 
 import java.util.Arrays;
@@ -12,5 +11,4 @@
 import org.openstreetmap.josm.actions.search.SearchCompiler;
 import org.openstreetmap.josm.actions.search.SearchCompiler.Match;
-import org.openstreetmap.josm.data.Preferences;
 import org.openstreetmap.josm.data.osm.DatasetFactory;
 import org.openstreetmap.josm.data.osm.Node;
@@ -23,5 +21,5 @@
     @BeforeClass
     public static void before() {
-        Main.pref = new Preferences();
+        Main.initApplicationPreferences();
     }
 
