Index: trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 12852)
+++ trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 12853)
@@ -321,5 +321,5 @@
     private BoundingXYVisitor modeDownload(BoundingXYVisitor v) {
         if (lastZoomTime > 0 &&
-                System.currentTimeMillis() - lastZoomTime > Main.pref.getLong("zoom.bounds.reset.time", TimeUnit.SECONDS.toMillis(10))) {
+                System.currentTimeMillis() - lastZoomTime > Config.getPref().getLong("zoom.bounds.reset.time", TimeUnit.SECONDS.toMillis(10))) {
             lastZoomTime = -1;
         }
Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 12852)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 12853)
@@ -585,5 +585,7 @@
      * @return {@code true}, if something has changed (i.e. value is different than before)
      * @see LongProperty#put(Long)
-     */
+     * @deprecated use {@link IPreferences#putLong(java.lang.String, long)}
+     */
+    @Deprecated
     public boolean putLong(final String key, final Long value) {
         return put(key, Long.toString(value));
@@ -961,25 +963,4 @@
 
     /**
-     * Gets a long preference
-     * @param key The preference key
-     * @param def The default value to use
-     * @return The long value or the default value if it could not be parsed
-     * @see LongProperty#get()
-     */
-    public synchronized long getLong(String key, long def) {
-        String v = get(key, Long.toString(def));
-        if (null == v)
-            return def;
-
-        try {
-            return Long.parseLong(v);
-        } catch (NumberFormatException e) {
-            // fall out
-            Logging.trace(e);
-        }
-        return def;
-    }
-
-    /**
      * Get a list of values for a certain key
      * @param key the identifier for the setting
Index: trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java	(revision 12852)
+++ trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java	(revision 12853)
@@ -656,5 +656,5 @@
         Collection<String> history = Config.getPref().getList(historyKey, def);
         int age = (int) (System.currentTimeMillis() / 1000 - Config.getPref().getInt(BasicUploadSettingsPanel.HISTORY_LAST_USED_KEY, 0));
-        if (history != null && age < Main.pref.getLong(BasicUploadSettingsPanel.HISTORY_MAX_AGE_KEY, TimeUnit.HOURS.toMillis(4))
+        if (history != null && age < Config.getPref().getLong(BasicUploadSettingsPanel.HISTORY_MAX_AGE_KEY, TimeUnit.HOURS.toMillis(4))
                 && !history.isEmpty()) {
             return history.iterator().next();
Index: trunk/src/org/openstreetmap/josm/gui/layer/gpx/DateFilterPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/gpx/DateFilterPanel.java	(revision 12852)
+++ trunk/src/org/openstreetmap/josm/gui/layer/gpx/DateFilterPanel.java	(revision 12853)
@@ -16,5 +16,4 @@
 import javax.swing.event.ChangeListener;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
 import org.openstreetmap.josm.gui.widgets.DateEditorWithSlider;
@@ -104,6 +103,6 @@
      */
     public void saveInPrefs() {
-        Main.pref.putLong(prefDateMin, dateFrom.getDate().getTime());
-        Main.pref.putLong(prefDateMax, dateTo.getDate().getTime());
+        Config.getPref().putLong(prefDateMin, dateFrom.getDate().getTime());
+        Config.getPref().putLong(prefDateMax, dateTo.getDate().getTime());
         Config.getPref().putBoolean(prefDate0, noTimestampCb.isSelected());
     }
@@ -114,7 +113,7 @@
      */
     public void loadFromPrefs() {
-        long t1 = Main.pref.getLong(prefDateMin, 0);
+        long t1 = Config.getPref().getLong(prefDateMin, 0);
         if (t1 != 0) dateFrom.setDate(new Date(t1));
-        long t2 = Main.pref.getLong(prefDateMax, 0);
+        long t2 = Config.getPref().getLong(prefDateMax, 0);
         if (t2 != 0) dateTo.setDate(new Date(t2));
         noTimestampCb.setSelected(Config.getPref().getBoolean(prefDate0, false));
Index: trunk/src/org/openstreetmap/josm/io/CachedFile.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/CachedFile.java	(revision 12852)
+++ trunk/src/org/openstreetmap/josm/io/CachedFile.java	(revision 12853)
@@ -436,5 +436,5 @@
                         || maxAge <= 0 // arbitrary value <= 0 is deprecated
                 ) {
-                    maxAgeMillis = TimeUnit.SECONDS.toMillis(Main.pref.getLong("mirror.maxtime", TimeUnit.DAYS.toSeconds(7)));
+                    maxAgeMillis = TimeUnit.SECONDS.toMillis(Config.getPref().getLong("mirror.maxtime", TimeUnit.DAYS.toSeconds(7)));
                 }
                 age = System.currentTimeMillis() - Long.parseLong(localPathEntry.get(0));
Index: trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 12852)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 12853)
@@ -434,5 +434,5 @@
         } else {
             long tim = System.currentTimeMillis();
-            long last = Main.pref.getLong("pluginmanager.lastupdate", 0);
+            long last = Config.getPref().getLong("pluginmanager.lastupdate", 0);
             Integer maxTime = Config.getPref().getInt("pluginmanager.time-based-update.interval", DEFAULT_TIME_BASED_UPDATE_INTERVAL);
             long d = TimeUnit.MILLISECONDS.toDays(tim - last);
Index: trunk/src/org/openstreetmap/josm/spi/preferences/AbstractPreferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/spi/preferences/AbstractPreferences.java	(revision 12852)
+++ trunk/src/org/openstreetmap/josm/spi/preferences/AbstractPreferences.java	(revision 12853)
@@ -56,4 +56,24 @@
     public boolean putInt(String key, int value) {
         return put(key, Integer.toString(value));
+    }
+
+    @Override
+    public long getLong(String key, long def) {
+        String v = get(key, Long.toString(def));
+        if (null == v)
+            return def;
+
+        try {
+            return Long.parseLong(v);
+        } catch (NumberFormatException e) {
+            // fall out
+            Logging.trace(e);
+        }
+        return def;
+    }
+
+    @Override
+    public boolean putLong(final String key, final long value) {
+        return put(key, Long.toString(value));
     }
 
Index: trunk/src/org/openstreetmap/josm/spi/preferences/IPreferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/spi/preferences/IPreferences.java	(revision 12852)
+++ trunk/src/org/openstreetmap/josm/spi/preferences/IPreferences.java	(revision 12853)
@@ -105,5 +105,5 @@
 
     /**
-     * Set a boolean value for a certain setting.
+     * Set an integer value for a certain setting.
      * @param key the unique identifier for the setting
      * @param value The new value
@@ -112,4 +112,20 @@
      */
     boolean putInt(String key, int value);
+
+    /**
+     * Gets a long preference
+     * @param key The preference key
+     * @param def The default value to use
+     * @return The long value or the default value if it could not be parsed
+     */
+    long getLong(String key, long def);
+
+    /**
+     * Set a long value for a certain setting.
+     * @param key the unique identifier for the setting
+     * @param value The new value
+     * @return {@code true}, if something has changed (i.e. value is different than before)
+     */
+    boolean putLong(String key, long value);
 
     /**
