Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/FetchWikidataAction.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/FetchWikidataAction.java	(revision 32057)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/FetchWikidataAction.java	(revision 32058)
@@ -21,4 +21,5 @@
 import org.openstreetmap.josm.command.SequenceCommand;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.ConditionalOptionPaneUtil;
 import org.openstreetmap.josm.gui.Notification;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
@@ -124,9 +125,12 @@
                     "Fetching {0} Wikidata IDs for language ''{1}''", size, size, lang));
             final Map<String, String> wikidataByWikipedia = WikipediaApp.getWikidataForArticles(lang, byArticle.keySet());
+            ConditionalOptionPaneUtil.startBulkOperation(GuiUtils.PREF_OVERWRITE);
             for (Map.Entry<String, Set<OsmPrimitive>> i : byArticle.entrySet()) {
                 final String wikipedia = i.getKey();
                 final String wikidata = wikidataByWikipedia.get(wikipedia);
                 if (wikidata != null) {
-                    commands.add(new ChangePropertyCommand(i.getValue(), "wikidata", wikidata));
+                    if (GuiUtils.confirmOverwrite("wikidata", wikidata, i.getValue())) {
+                        commands.add(new ChangePropertyCommand(i.getValue(), "wikidata", wikidata));
+                    }
                 } else {
                     final WikipediaApp.WikipediaLangArticle article = new WikipediaApp.WikipediaLangArticle(lang, wikipedia);
@@ -135,4 +139,5 @@
                 }
             }
+            ConditionalOptionPaneUtil.endBulkOperation(GuiUtils.PREF_OVERWRITE);
             monitor.finishTask();
         }
Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/GuiUtils.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/GuiUtils.java	(revision 32058)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/GuiUtils.java	(revision 32058)
@@ -0,0 +1,56 @@
+// License: GPL. See LICENSE file for details./*
+package org.wikipedia;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.ConditionalOptionPaneUtil;
+import org.openstreetmap.josm.gui.DefaultNameFormatter;
+import org.openstreetmap.josm.gui.util.GuiHelper;
+import org.openstreetmap.josm.tools.AlphanumComparator;
+import org.openstreetmap.josm.tools.Utils;
+
+import javax.swing.JOptionPane;
+import java.util.Collection;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import java.util.concurrent.Callable;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+public class GuiUtils {
+
+    static final String PREF_OVERWRITE = "wikipedia.overwrite-tag";
+
+    protected static boolean confirmOverwrite(final String key, final String newValue, final Collection<OsmPrimitive> primitives) {
+        final SortedSet<String> existingValues = new TreeSet<>(AlphanumComparator.getInstance());
+        existingValues.addAll(Utils.transform(primitives, new Utils.Function<OsmPrimitive, String>() {
+            @Override
+            public String apply(OsmPrimitive x) {
+                return x.get(key);
+            }
+        }));
+        existingValues.remove(newValue);
+        existingValues.remove(null);
+
+        if (existingValues.isEmpty()) {
+            return true;
+        }
+        final Boolean r = GuiHelper.runInEDTAndWaitAndReturn(new Callable<Boolean>() {
+            @Override
+            public Boolean call() throws Exception {
+                return ConditionalOptionPaneUtil.showConfirmationDialog(PREF_OVERWRITE, Main.parent,
+                        trn(
+                                "Overwrite ''{0}'' tag {1} from {2} with new value ''{3}''?",
+                                "Overwrite ''{0}'' tags {1} from {2} with new value ''{3}''?", existingValues.size(),
+                                key, Utils.joinAsHtmlUnorderedList(existingValues),
+                                DefaultNameFormatter.getInstance().formatAsHtmlUnorderedList(primitives, 10), newValue),
+                        tr("Overwrite key"),
+                        JOptionPane.YES_NO_OPTION,
+                        JOptionPane.QUESTION_MESSAGE,
+                        JOptionPane.YES_OPTION);
+            }
+        });
+        return Boolean.TRUE.equals(r);
+    }
+}
Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaToggleDialog.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaToggleDialog.java	(revision 32057)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaToggleDialog.java	(revision 32058)
@@ -269,4 +269,7 @@
                 if (tag != null) {
                     final Collection<OsmPrimitive> selected = Main.main.getCurrentDataSet().getSelected();
+                    if (!GuiUtils.confirmOverwrite(tag.getKey(), tag.getValue(), selected)) {
+                        return;
+                    }
                     ChangePropertyCommand cmd = new ChangePropertyCommand(
                             selected,
