Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java	(revision 13835)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java	(revision 13836)
@@ -7,5 +7,4 @@
 
 import java.awt.geom.Point2D;
-import java.text.Normalizer;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -25,4 +24,5 @@
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.tools.MultiMap;
+import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -35,6 +35,4 @@
 
     protected static final int SIMILAR_NAMED = 701;
-
-    private static final Pattern REMOVE_DIACRITICS = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
 
     /** All ways, grouped by cells */
@@ -207,5 +205,5 @@
         // check if only the case differs, so we don't consider large distance as different strings
         if (distance > 2 && name.length() == name2.length()) {
-            similar = deAccent(name).equalsIgnoreCase(deAccent(name2));
+            similar = Utils.deAccent(name).equalsIgnoreCase(Utils.deAccent(name2));
         }
 
@@ -225,15 +223,4 @@
 
     /**
-     * Removes diacritics (accents) from string.
-     * @param str string
-     * @return {@code str} without any diacritic (accent)
-     * @since 12283
-     */
-    public static String deAccent(String str) {
-        // https://stackoverflow.com/a/1215117/2257172
-        return REMOVE_DIACRITICS.matcher(Normalizer.normalize(str, Normalizer.Form.NFD)).replaceAll("");
-    }
-
-    /**
      * A normalization that is applied to names before testing them
      */
Index: /trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java	(revision 13835)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java	(revision 13836)
@@ -18,4 +18,5 @@
 import java.util.Objects;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 import javax.swing.AbstractAction;
@@ -128,9 +129,12 @@
         private static int isMatching(Collection<String> values, String... searchString) {
             int sum = 0;
+            List<String> deaccentedValues = values.stream().map(
+                    s -> Utils.deAccent(s).toLowerCase(Locale.ENGLISH)).collect(Collectors.toList());
             for (String word: searchString) {
                 boolean found = false;
                 boolean foundFirst = false;
-                for (String value: values) {
-                    int index = value.toLowerCase(Locale.ENGLISH).indexOf(word);
+                String deaccentedWord = Utils.deAccent(word);
+                for (String value: deaccentedValues) {
+                    int index = value.indexOf(deaccentedWord);
                     if (index == 0) {
                         foundFirst = true;
Index: /trunk/src/org/openstreetmap/josm/tools/AlphanumComparator.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/AlphanumComparator.java	(revision 13835)
+++ /trunk/src/org/openstreetmap/josm/tools/AlphanumComparator.java	(revision 13836)
@@ -34,5 +34,4 @@
 import java.text.Collator;
 import java.util.Comparator;
-import java.util.Locale;
 
 /**
@@ -141,5 +140,5 @@
             } else {
                 // Instantiate the collator
-                Collator compareOperator = Collator.getInstance(Locale.getDefault());
+                Collator compareOperator = Collator.getInstance();
                 // Compare regardless of accented letters
                 compareOperator.setStrength(Collator.SECONDARY);
Index: /trunk/src/org/openstreetmap/josm/tools/Utils.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 13835)
+++ /trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 13836)
@@ -36,4 +36,5 @@
 import java.text.DateFormat;
 import java.text.MessageFormat;
+import java.text.Normalizer;
 import java.text.ParseException;
 import java.util.AbstractCollection;
@@ -98,4 +99,6 @@
     public static final String URL_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=%";
 
+    private static final Pattern REMOVE_DIACRITICS = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
+
     private static final char[] DEFAULT_STRIP = {'\u200B', '\uFEFF'};
 
@@ -1559,4 +1562,15 @@
         }
         return gvs;
+    }
+
+    /**
+     * Removes diacritics (accents) from string.
+     * @param str string
+     * @return {@code str} without any diacritic (accent)
+     * @since 13836 (moved from SimilarNamedWays)
+     */
+    public static String deAccent(String str) {
+        // https://stackoverflow.com/a/1215117/2257172
+        return REMOVE_DIACRITICS.matcher(Normalizer.normalize(str, Normalizer.Form.NFD)).replaceAll("");
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelectorTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelectorTest.java	(revision 13836)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelectorTest.java	(revision 13836)
@@ -0,0 +1,38 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.tagging.presets;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetSelector.PresetClassification;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link TaggingPresetSelector} class.
+ */
+public class TaggingPresetSelectorTest {
+
+    /**
+     * Setup rule
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Unit test for {@link PresetClassification#isMatching}.
+     */
+    @Test
+    public void testIsMatching() {
+        TaggingPreset preset = new TaggingPreset();
+        preset.name = "estação de bombeiros"; // fire_station in brazilian portuguese
+        PresetClassification pc = new PresetClassification(preset);
+        assertEquals(0, pc.isMatchingName("foo"));
+        assertTrue(pc.isMatchingName("estação") > 0);
+        assertTrue(pc.isMatchingName("estacao") > 0);
+    }
+}
