Index: trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 8435)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 8438)
@@ -421,7 +421,9 @@
                         // try to fix common typos and check again if value is still unknown
                         String fixedValue = prettifyValue(prop.getValue());
-                        if (values != null && values.contains(fixedValue)) {
+                        Map<String, String> possibleValues = getPossibleValues(values);
+                        if (possibleValues.containsKey(fixedValue)) {
+                            fixedValue = possibleValues.get(fixedValue);
                             // misspelled preset value
-                            String i = marktr("Value ''{0}'' for key ''{1}'' looks like ''{2}}.");
+                            String i = marktr("Value ''{0}'' for key ''{1}'' looks like ''{2}''.");
                             errors.add(new FixableTestError(this, Severity.WARNING, tr("Misspelled property value"),
                                     tr(i, prop.getValue(), key, fixedValue), MessageFormat.format(i, prop.getValue(), fixedValue),
@@ -449,4 +451,18 @@
             }
         }
+    }
+
+    private Map<String, String> getPossibleValues(Set<String> values) {
+        // generate a map with common typos
+        Map<String, String> map = new HashMap<>();
+        if (values != null) {
+            for (String value : values) {
+                map.put(value, value);
+                if (value.contains("_")) {
+                    map.put(value.replace("_", ""), value);
+                }
+            }
+        }
+        return map;
     }
 
