Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 14570)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 14571)
@@ -567,5 +567,6 @@
                             }
                         }
-                        if (minDist <= MAX_LEVENSHTEIN_DISTANCE && maxPresetValueLen > MAX_LEVENSHTEIN_DISTANCE) {
+                        if (minDist <= MAX_LEVENSHTEIN_DISTANCE && maxPresetValueLen > MAX_LEVENSHTEIN_DISTANCE
+                                && (harmonizedValue.length() > 3 || minDist < MAX_LEVENSHTEIN_DISTANCE)) {
                             if (fixVals.size() < 2) {
                                 fixedValue = closest;
@@ -575,7 +576,7 @@
                                 errors.add(TestError.builder(this, Severity.WARNING, MISSPELLED_VALUE_NO_FIX)
                                         .message(tr("Misspelled property value"),
-                                                marktr("Value ''{0}'' for key ''{1}'' looks like one of {2}."), prop.getValue(), key, fixVals)
-                                        .primitives(p)
-                                        .build());
+                                                marktr("Value ''{0}'' for key ''{1}'' looks like one of {2}."),
+                                                prop.getValue(), key, fixVals)
+                                        .primitives(p).build());
                                 withErrors.put(p, "WPV");
                                 continue;
Index: /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/TagCheckerTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/TagCheckerTest.java	(revision 14570)
+++ /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/TagCheckerTest.java	(revision 14571)
@@ -154,4 +154,18 @@
 
     /**
+     * Check for misspelled value.
+     * @throws IOException if any I/O error occurs
+     */
+    @Test
+    public void testShortValNotInPreset2() throws IOException {
+        final List<TestError> errors = test(OsmUtils.createPrimitive("node shop=gas"));
+        assertEquals(1, errors.size());
+        assertEquals("Presets do not contain property value", errors.get(0).getMessage());
+        assertEquals("Value 'gas' for key 'shop' not in presets.", errors.get(0).getDescription());
+        assertEquals(Severity.OTHER, errors.get(0).getSeverity());
+        assertFalse(errors.get(0).isFixable());
+    }
+
+    /**
      * Checks that tags specifically ignored are effectively not in internal presets.
      * @throws IOException if any I/O error occurs
