Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 9381)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 9382)
@@ -444,8 +444,16 @@
                             // misspelled preset key
                             String i = marktr("Key ''{0}'' looks like ''{1}''.");
-                            errors.add(new FixableTestError(this, Severity.WARNING, tr("Misspelled property key"),
-                                    tr(i, key, fixedKey),
-                                    MessageFormat.format(i, key, fixedKey), MISSPELLED_KEY, p,
-                                    new ChangePropertyKeyCommand(p, key, fixedKey)));
+                            final TestError error;
+                            if (p.hasKey(fixedKey)) {
+                                error = new TestError(this, Severity.WARNING, tr("Misspelled property key"),
+                                        tr(i, key, fixedKey),
+                                        MessageFormat.format(i, key, fixedKey), MISSPELLED_KEY, p);
+                            } else {
+                                error = new FixableTestError(this, Severity.WARNING, tr("Misspelled property key"),
+                                        tr(i, key, fixedKey),
+                                        MessageFormat.format(i, key, fixedKey), MISSPELLED_KEY, p,
+                                        new ChangePropertyKeyCommand(p, key, fixedKey));
+                            }
+                            errors.add(error);
                             withErrors.put(p, "WPK");
                         } else {
Index: /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/TagCheckerTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/TagCheckerTest.java	(revision 9381)
+++ /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/TagCheckerTest.java	(revision 9382)
@@ -45,9 +45,10 @@
      */
     @Test
-    public void testInvalidKey() throws IOException {
+    public void testMisspelledKey1() throws IOException {
         final List<TestError> errors = test(OsmUtils.createPrimitive("node Name=Main"));
         assertEquals(1, errors.size());
         assertEquals("Misspelled property key", errors.get(0).getMessage());
         assertEquals("Key 'Name' looks like 'name'.", errors.get(0).getDescription());
+        assertEquals(true, errors.get(0).isFixable());
     }
 
@@ -57,9 +58,24 @@
      */
     @Test
-    public void testMisspelledKey() throws IOException {
+    public void testMisspelledKey2() throws IOException {
         final List<TestError> errors = test(OsmUtils.createPrimitive("node landuse;=forest"));
         assertEquals(1, errors.size());
         assertEquals("Misspelled property key", errors.get(0).getMessage());
         assertEquals("Key 'landuse;' looks like 'landuse'.", errors.get(0).getDescription());
+        assertEquals(true, errors.get(0).isFixable());
+    }
+
+    /**
+     * Check for mispelled key where the suggested alternative is in use. The error should not be fixable.
+     * @throws IOException if any I/O error occurs
+     */
+    @Test
+    public void testMisspelledKeyButAlternativeInUse() throws IOException {
+        // ticket 12329
+        final List<TestError> errors = test(OsmUtils.createPrimitive("node amenity=fuel brand=bah Brand=foo"));
+        assertEquals(1, errors.size());
+        assertEquals("Misspelled property key", errors.get(0).getMessage());
+        assertEquals("Key 'Brand' looks like 'brand'.", errors.get(0).getDescription());
+        assertEquals(false, errors.get(0).isFixable());
     }
 
