Index: applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikidataTagCellRenderer.java
===================================================================
--- applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikidataTagCellRenderer.java	(revision 31995)
+++ applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikidataTagCellRenderer.java	(revision 32001)
@@ -7,4 +7,5 @@
 import java.util.Collections;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.concurrent.Callable;
@@ -37,5 +38,5 @@
         @Override
         public String call() throws Exception {
-            final String label = WikipediaApp.getLabelForWikidata(id, LanguageInfo.getJOSMLocaleCode());
+            final String label = WikipediaApp.getLabelForWikidata(id, Locale.getDefault());
             table.repaint();
             table = null;
Index: applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java
===================================================================
--- applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java	(revision 31995)
+++ applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java	(revision 32001)
@@ -12,4 +12,5 @@
 import java.util.HashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
@@ -47,4 +48,12 @@
 
     private WikipediaApp() {
+    }
+
+    static String getMediawikiLocale(Locale locale) {
+        if (!locale.getCountry().isEmpty()) {
+            return locale.getLanguage() + "-" + locale.getCountry().toLowerCase();
+        } else {
+            return locale.getLanguage();
+        }
     }
 
@@ -206,5 +215,5 @@
     }
 
-    static String getLabelForWikidata(String wikidataId, String preferredLanguage) {
+    static String getLabelForWikidata(String wikidataId, Locale locale, String ... preferredLanguage) {
         try {
             CheckParameterUtil.ensureThat(WIKIDATA_PATTERN.matcher(wikidataId).matches(), "Invalid Wikidata ID given");
@@ -213,16 +222,22 @@
                     "&props=labels" +
                     "&ids=" + wikidataId +
-                    "&format=xml" +
-                    (preferredLanguage != null ? "&languages=" + preferredLanguage + "&languagefallback=en" : "");
+                    "&format=xml";
+            final Collection<String> languages = new ArrayList<>();
+            if (locale != null) {
+                languages.add(getMediawikiLocale(locale));
+                languages.add(getMediawikiLocale(new Locale(locale.getLanguage())));
+            }
+            languages.addAll(Arrays.asList(preferredLanguage));
+            languages.add("en");
             try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
                 final Document xml = DOCUMENT_BUILDER.parse(in);
-                final Node label = (Node) X_PATH.compile("//label").evaluate(xml, XPathConstants.NODE);
-                if (label == null && preferredLanguage != null) {
-                    return getLabelForWikidata(wikidataId, null);
-                } else if (label == null) {
-                    return null;
-                } else {
-                    return (String) X_PATH.compile("./@value").evaluate(label, XPathConstants.STRING);
-                }
+                for (String language : languages) {
+                    final String label = (String) X_PATH.compile("//label[@language='" + language + "']/@value")
+                            .evaluate(xml, XPathConstants.STRING);
+                    if (label != null && !label.isEmpty()) {
+                         return label;
+                    }
+                }
+                return null;
             }
         } catch (Exception ex) {
Index: applications/editors/josm/plugins/wikipedia/test/unit/org/wikipedia/WikipediaAppTest.java
===================================================================
--- applications/editors/josm/plugins/wikipedia/test/unit/org/wikipedia/WikipediaAppTest.java	(revision 31995)
+++ applications/editors/josm/plugins/wikipedia/test/unit/org/wikipedia/WikipediaAppTest.java	(revision 32001)
@@ -13,4 +13,5 @@
 import java.util.Collection;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 
@@ -25,4 +26,12 @@
     public void setUp() throws Exception {
         Main.initApplicationPreferences();
+    }
+
+    @Test
+    public void testMediawikiLocale() throws Exception {
+        assertThat(WikipediaApp.getMediawikiLocale(Locale.GERMANY), is("de-de"));
+        assertThat(WikipediaApp.getMediawikiLocale(Locale.GERMAN), is("de"));
+        assertThat(WikipediaApp.getMediawikiLocale(Locale.UK), is("en-gb"));
+        assertThat(WikipediaApp.getMediawikiLocale(Locale.CANADA), is("en-ca"));
     }
 
@@ -146,12 +155,12 @@
     @Test
     public void testGetLabelForWikidata() throws Exception {
-        assertThat(WikipediaApp.getLabelForWikidata("Q1741", "de"), is("Wien"));
-        assertThat(WikipediaApp.getLabelForWikidata("Q1741", "en"), is("Vienna"));
-        assertThat(WikipediaApp.getLabelForWikidata("Q" + Long.MAX_VALUE, "en"), nullValue());
+        assertThat(WikipediaApp.getLabelForWikidata("Q1741", Locale.GERMAN), is("Wien"));
+        assertThat(WikipediaApp.getLabelForWikidata("Q1741", Locale.ENGLISH), is("Vienna"));
+        assertThat(WikipediaApp.getLabelForWikidata("Q" + Long.MAX_VALUE, Locale.ENGLISH), nullValue());
     }
 
     @Test(expected = RuntimeException.class)
     public void testGetLabelForWikidataInvalidId() throws Exception {
-        WikipediaApp.getLabelForWikidata("Qxyz", "en");
+        WikipediaApp.getLabelForWikidata("Qxyz", Locale.ENGLISH);
     }
 
