Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/FetchWikidataAction.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/FetchWikidataAction.java	(revision 32670)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/FetchWikidataAction.java	(revision 32671)
@@ -126,5 +126,5 @@
                     "Fetching {0} Wikidata ID for language ''{1}''",
                     "Fetching {0} Wikidata IDs for language ''{1}''", size, size, lang));
-            final Map<String, String> wikidataByWikipedia = WikipediaApp.getWikidataForArticles(lang, byArticle.keySet());
+            final Map<String, String> wikidataByWikipedia = WikipediaApp.getWikidataForArticles(lang, new ArrayList<>(byArticle.keySet()));
             ConditionalOptionPaneUtil.startBulkOperation(GuiUtils.PREF_OVERWRITE);
             for (Map.Entry<String, Set<OsmPrimitive>> i : byArticle.entrySet()) {
Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java	(revision 32670)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java	(revision 32671)
@@ -102,9 +102,6 @@
                 }
                 if ("wikidata".equals(wikipediaLang)) {
-                    final List<WikipediaEntry> entriesWithLabel = new ArrayList<>(nodes.getLength());
-                    for (final List<WikipediaEntry> chunk : partitionList(entries, 50)) {
-                        entriesWithLabel.addAll(getLabelForWikidata(chunk, Locale.getDefault()));
-                    }
-                    return entriesWithLabel;
+                    final List<WikidataEntry> withLabel = getLabelForWikidata(entries, Locale.getDefault());
+                    return new ArrayList<WikipediaEntry>(withLabel);
                 } else {
                     return entries;
@@ -238,5 +235,12 @@
      * Returns a map mapping wikipedia articles to wikidata ids.
      */
-    static Map<String, String> getWikidataForArticles(String wikipediaLang, Collection<String> articles) {
+    static Map<String, String> getWikidataForArticles(String wikipediaLang, List<String> articles) {
+        if (articles.size() > 50) {
+            final Map<String, String> wikidataItems = new HashMap<>();
+            for (final List<String> chunk : partitionList(articles, 50)) {
+                wikidataItems.putAll(getWikidataForArticles(wikipediaLang, chunk));
+            }
+            return wikidataItems;
+        }
         try {
             final String url = "https://www.wikidata.org/w/api.php" +
@@ -297,5 +301,5 @@
     static String getLabelForWikidata(String wikidataId, Locale locale, String ... preferredLanguage) {
         try {
-            return getLabelForWikidata(Collections.singleton(new WikidataEntry(wikidataId, null, null, null)), locale, preferredLanguage).get(0).label;
+            return getLabelForWikidata(Collections.singletonList(new WikidataEntry(wikidataId, null, null, null)), locale, preferredLanguage).get(0).label;
         } catch (IndexOutOfBoundsException ignore) {
             return null;
@@ -303,5 +307,12 @@
     }
 
-    static List<WikidataEntry> getLabelForWikidata(Collection<? extends WikipediaEntry> entries, Locale locale, String ... preferredLanguage) {
+    static List<WikidataEntry> getLabelForWikidata(List<? extends WikipediaEntry> entries, Locale locale, String ... preferredLanguage) {
+        if (entries.size() > 50) {
+            final List<WikidataEntry> entriesWithLabel = new ArrayList<>(entries.size());
+            for (final List<? extends WikipediaEntry> chunk : partitionList(entries, 50)) {
+                entriesWithLabel.addAll(getLabelForWikidata(chunk, locale, preferredLanguage));
+            }
+            return entriesWithLabel;
+        }
         final Collection<String> wikidataIds = Utils.transform(entries, new Function<WikipediaEntry, String>() {
             @Override
