Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/FetchWikidataAction.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/FetchWikidataAction.java	(revision 31852)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/FetchWikidataAction.java	(revision 31853)
@@ -13,4 +13,6 @@
 import java.util.Set;
 
+import javax.swing.JOptionPane;
+
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
@@ -19,7 +21,9 @@
 import org.openstreetmap.josm.command.SequenceCommand;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.Notification;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.tools.MultiMap;
+import org.openstreetmap.josm.tools.Utils;
 
 public class FetchWikidataAction extends JosmAction {
@@ -41,5 +45,6 @@
         private final Collection<? extends OsmPrimitive> selection;
         private boolean canceled = false;
-        private List<Command> commands;
+        private final List<Command> commands = new ArrayList<>();
+        private final Collection<WikipediaApp.WikipediaLangArticle> notFound = new ArrayList<>();
 
         public Fetcher(Collection<? extends OsmPrimitive> selection) {
@@ -56,5 +61,4 @@
         protected void realRun() {
             final Map<String, PrimitivesWithWikipedia> wikipediaByLanguage = getLanguageToArticlesMap(selection);
-            commands = new ArrayList<>(wikipediaByLanguage.keySet().size());
             getProgressMonitor().setTicksCount(wikipediaByLanguage.keySet().size());
             for (final Map.Entry<String, PrimitivesWithWikipedia> i : wikipediaByLanguage.entrySet()) {
@@ -62,8 +66,11 @@
                     break;
                 }
-                final Command command = i.getValue().updateWikidataIds(getProgressMonitor().createSubTaskMonitor(1, false));
+                final PrimitivesWithWikipedia fetcher = i.getValue();
+                fetcher.updateWikidataIds(getProgressMonitor().createSubTaskMonitor(1, false));
+                final Command command = fetcher.getCommand();
                 if (command != null) {
                     commands.add(command);
                 }
+                notFound.addAll(fetcher.getNotFound());
             }
         }
@@ -88,4 +95,10 @@
                 Main.main.undoRedo.add(commands.size() == 1 ? commands.get(0) : new SequenceCommand(tr("Add Wikidata"), commands));
             }
+            if (!canceled && !notFound.isEmpty()) {
+                new Notification(tr("No Wikidata ID found for: {0}", Utils.joinAsHtmlUnorderedList(notFound)))
+                        .setIcon(JOptionPane.WARNING_MESSAGE)
+                        .setDuration(Notification.TIME_LONG)
+                        .show();
+            }
         }
     }
@@ -94,4 +107,6 @@
         final String lang;
         final MultiMap<String, OsmPrimitive> byArticle = new MultiMap<>();
+        final List<Command> commands = new ArrayList<>();
+        final List<WikipediaApp.WikipediaLangArticle> notFound = new ArrayList<>();
 
         public PrimitivesWithWikipedia(String lang) {
@@ -103,10 +118,9 @@
         }
 
-        protected Command updateWikidataIds(ProgressMonitor monitor) {
+        protected void updateWikidataIds(ProgressMonitor monitor) {
             final int size = byArticle.keySet().size();
             monitor.beginTask(trn(
                     "Fetching {0} Wikidata ID for language ''{1}''",
                     "Fetching {0} Wikidata IDs for language ''{1}''", size, size, lang));
-            final List<Command> commands = new ArrayList<>(size);
             final Map<String, String> wikidataByWikipedia = WikipediaApp.getWikidataForArticles(lang, byArticle.keySet());
             for (Map.Entry<String, Set<OsmPrimitive>> i : byArticle.entrySet()) {
@@ -116,11 +130,20 @@
                     commands.add(new ChangePropertyCommand(i.getValue(), "wikidata", wikidata));
                 } else {
-                    Main.warn(tr("No Wikidata ID found for {0}", lang + ":" + wikipedia));
+                    final WikipediaApp.WikipediaLangArticle article = new WikipediaApp.WikipediaLangArticle(lang, wikipedia);
+                    Main.warn(tr("No Wikidata ID found for: {0}", article));
+                    notFound.add(article);
                 }
             }
             monitor.finishTask();
+        }
+
+        public Command getCommand() {
             return commands.isEmpty()
                     ? null
                     : new SequenceCommand(tr("Add Wikidata for language ''{0}''", lang), commands);
+        }
+
+        public List<WikipediaApp.WikipediaLangArticle> getNotFound() {
+            return notFound;
         }
     }
