diff --git a/src/org/openstreetmap/josm/data/Preferences.java b/src/org/openstreetmap/josm/data/Preferences.java
index ec382d8..b700a7f 100644
--- a/src/org/openstreetmap/josm/data/Preferences.java
+++ b/src/org/openstreetmap/josm/data/Preferences.java
@@ -17,6 +17,7 @@
 import java.lang.annotation.RetentionPolicy;
 import java.lang.reflect.Field;
 import java.nio.charset.StandardCharsets;
+import java.util.AbstractMap;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -37,6 +38,7 @@
 import java.util.function.Predicate;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import javax.json.Json;
@@ -1525,7 +1527,21 @@ private void removeObsolete(int loadedVersion) {
         removeUrlFromEntries(loadedVersion, 10063,
                 "validator.org.openstreetmap.josm.data.validation.tests.MapCSSTagChecker.entries",
                 "resource://data/validator/power.mapcss");
-
+        // drop in February 2017
+        settingsMap.keySet().stream()
+                .filter(key -> key.startsWith("color."))
+                .flatMap(key -> {
+                    final String newKey = ColorProperty.getColorKey(key.substring("color.".length()));
+                    return key.equals(newKey) ? Stream.empty() : Stream.of(new AbstractMap.SimpleImmutableEntry<>(key, newKey));
+                })
+                .collect(Collectors.toList()) // to avoid ConcurrentModificationException
+                .forEach(entry -> {
+                    final String oldKey = entry.getKey();
+                    final String newKey = entry.getValue();
+                    Main.info("Migrating {0} => {1}", oldKey, newKey);
+                    put(newKey, get(oldKey));
+                    put(oldKey, null);
+                });
         for (String key : OBSOLETE_PREF_KEYS) {
             if (settingsMap.containsKey(key)) {
                 settingsMap.remove(key);
