Index: src/org/openstreetmap/josm/data/validation/tests/TagChecker.java
===================================================================
--- src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 14478)
+++ src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(working copy)
@@ -524,6 +524,20 @@
                     // try to fix common typos and check again if value is still unknown
                     String fixedValue = harmonizeValue(prop.getValue());
                     Map<String, String> possibleValues = getPossibleValues(getPresetValues(key));
+                    if (!possibleValues.containsKey(fixedValue)) {
+                        int minDist = 2;
+                        String closest = null;
+                        for (String possibleVal : possibleValues.keySet()) {
+                            int dist = Utils.getLevenshteinDistance(possibleVal, fixedValue);
+                            if (dist < minDist) {
+                                closest = possibleVal;
+                                minDist = dist;
+                            }
+                        }
+                        if (minDist <= 1) {
+                            fixedValue = closest;
+                        }
+                    }
                     if (possibleValues.containsKey(fixedValue)) {
                         final String newValue = possibleValues.get(fixedValue);
                         // misspelled preset value
