Index: trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 9743)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 9744)
@@ -127,4 +127,5 @@
     protected static final int MISSPELLED_VALUE  = 1212;
     protected static final int MISSPELLED_KEY    = 1213;
+    protected static final int MULTIPLE_SPACES   = 1214;
     /** 1250 and up is used by tagcheck */
 
@@ -429,4 +430,9 @@
                 errors.add(new TestError(this, Severity.WARNING, tr("Property values start or end with white space"),
                         tr(s, key), MessageFormat.format(s, key), INVALID_SPACE, p));
+                withErrors.put(p, "SPACE");
+            }
+            if (checkValues && value != null && value.contains("  ") && !withErrors.contains(p, "SPACE")) {
+                errors.add(new TestError(this, Severity.WARNING, tr("Property values contain multiple white spaces"),
+                        tr(s, key), MessageFormat.format(s, key), MULTIPLE_SPACES, p));
                 withErrors.put(p, "SPACE");
             }
@@ -654,7 +660,7 @@
                     if (value == null || value.trim().isEmpty()) {
                         commands.add(new ChangePropertyCommand(p, key, null));
-                    } else if (value.startsWith(" ") || value.endsWith(" ")) {
+                    } else if (value.startsWith(" ") || value.endsWith(" ") || value.contains("  ")) {
                         commands.add(new ChangePropertyCommand(p, key, Tag.removeWhiteSpaces(value)));
-                    } else if (key.startsWith(" ") || key.endsWith(" ")) {
+                    } else if (key.startsWith(" ") || key.endsWith(" ") || key.contains("  ")) {
                         commands.add(new ChangePropertyKeyCommand(p, key, Tag.removeWhiteSpaces(key)));
                     } else {
@@ -681,5 +687,6 @@
             int code = testError.getCode();
             return code == INVALID_KEY || code == EMPTY_VALUES || code == INVALID_SPACE ||
-                   code == INVALID_KEY_SPACE || code == INVALID_HTML || code == MISSPELLED_VALUE;
+                   code == INVALID_KEY_SPACE || code == INVALID_HTML || code == MISSPELLED_VALUE ||
+                   code == MULTIPLE_SPACES;
         }
 
