Index: /trunk/src/org/openstreetmap/josm/data/preferences/AbstractProperty.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/preferences/AbstractProperty.java	(revision 12998)
+++ /trunk/src/org/openstreetmap/josm/data/preferences/AbstractProperty.java	(revision 12999)
@@ -2,6 +2,6 @@
 package org.openstreetmap.josm.data.preferences;
 
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.data.Preferences;
+import org.openstreetmap.josm.spi.preferences.Config;
+import org.openstreetmap.josm.spi.preferences.IPreferences;
 import org.openstreetmap.josm.spi.preferences.PreferenceChangeEvent;
 import org.openstreetmap.josm.spi.preferences.PreferenceChangedListener;
@@ -152,5 +152,5 @@
      * The preferences object this property is for.
      */
-    protected final Preferences preferences;
+    protected final IPreferences preferences;
     protected final String key;
     protected final T defaultValue;
@@ -164,5 +164,5 @@
     public AbstractProperty(String key, T defaultValue) {
         // Main.pref should not change in production but may change during tests.
-        preferences = Main.pref;
+        preferences = Config.getPref();
         this.key = key;
         this.defaultValue = defaultValue;
@@ -227,7 +227,7 @@
      * Gets the preferences used for this property.
      * @return The preferences for this property.
-     * @since 10824
-     */
-    protected Preferences getPreferences() {
+     * @since 12999
+     */
+    protected IPreferences getPreferences() {
         return preferences;
     }
Index: /trunk/src/org/openstreetmap/josm/data/preferences/CollectionProperty.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/preferences/CollectionProperty.java	(revision 12998)
+++ /trunk/src/org/openstreetmap/josm/data/preferences/CollectionProperty.java	(revision 12999)
@@ -2,4 +2,5 @@
 package org.openstreetmap.josm.data.preferences;
 
+import java.util.ArrayList;
 import java.util.Collection;
 
@@ -27,10 +28,10 @@
     @Override
     public Collection<String> get() {
-        return getPreferences().getCollection(getKey(), getDefaultValue());
+        return getPreferences().getList(getKey(), new ArrayList<>(getDefaultValue()));
     }
 
     @Override
     public boolean put(Collection<String> value) {
-        return getPreferences().putCollection(getKey(), value);
+        return getPreferences().putList(getKey(), new ArrayList<>(value));
     }
 }
Index: /trunk/src/org/openstreetmap/josm/data/preferences/ColorProperty.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/preferences/ColorProperty.java	(revision 12998)
+++ /trunk/src/org/openstreetmap/josm/data/preferences/ColorProperty.java	(revision 12999)
@@ -5,4 +5,5 @@
 import java.util.Locale;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.ColorHelper;
@@ -36,5 +37,5 @@
         CheckParameterUtil.ensureParameterNotNull(defaultValue, "defaultValue");
         this.name = colName;
-        getPreferences().registerColor(getColorKey(colName), colName);
+        Main.pref.registerColor(getColorKey(colName), colName);
     }
 
