diff --git a/src/org/openstreetmap/josm/actions/relation/DuplicateRelationAction.java b/src/org/openstreetmap/josm/actions/relation/DuplicateRelationAction.java
index 08eea7019..31f6c6ade 100644
--- a/src/org/openstreetmap/josm/actions/relation/DuplicateRelationAction.java
+++ b/src/org/openstreetmap/josm/actions/relation/DuplicateRelationAction.java
@@ -3,12 +3,19 @@
 
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
 
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
+import org.openstreetmap.josm.data.osm.DefaultNameFormatter;
 import org.openstreetmap.josm.data.osm.IRelation;
 import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.gui.ConditionalOptionPaneUtil;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.dialogs.relation.RelationEditor;
+import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
 import org.openstreetmap.josm.tools.ImageProvider;
 
 /**
@@ -31,6 +38,9 @@ public DuplicateRelationAction() {
      * @param original The relation to duplicate
      */
     public static void duplicateRelationAndLaunchEditor(Relation original) {
+        if (!confirmRelationDuplicate(original)) {
+            return;
+        }
         Relation copy = new Relation(original, true);
         copy.setModified(true);
         RelationEditor editor = RelationEditor.getEditor(
@@ -61,4 +71,22 @@ protected void updateEnabledState() {
         setEnabled(relations.size() == 1
                 && isEditableRelation(relations.iterator().next()));
     }
+
+    private static boolean confirmRelationDuplicate(Relation relation) {
+        JPanel msg = new JPanel(new GridBagLayout());
+        msg.add(new JMultilineLabel("<html>" + tr(
+                "You are about to duplicate {0} relation: {1}"
+                        + "<br/>"
+                        + "This step is rarely necessary. Do you really want to duplicate?",
+                1, DefaultNameFormatter.getInstance().formatAsHtmlUnorderedList(relation))
+                + "</html>"));
+        return ConditionalOptionPaneUtil.showConfirmationDialog(
+                "delete_relations",
+                MainApplication.getMainFrame(),
+                msg,
+                tr("Duplicate relation?"),
+                JOptionPane.YES_NO_OPTION,
+                JOptionPane.QUESTION_MESSAGE,
+                JOptionPane.YES_OPTION);
+    }
 }
