Index: trunk/src/org/openstreetmap/josm/actions/relation/DuplicateRelationAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/relation/DuplicateRelationAction.java	(revision 16560)
+++ trunk/src/org/openstreetmap/josm/actions/relation/DuplicateRelationAction.java	(revision 16561)
@@ -4,10 +4,17 @@
 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;
 
@@ -32,4 +39,7 @@
      */
     public static void duplicateRelationAndLaunchEditor(Relation original) {
+        if (!confirmRelationDuplicate(original)) {
+            return;
+        }
         Relation copy = new Relation(original, true);
         copy.setModified(true);
@@ -62,3 +72,21 @@
                 && 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);
+    }
 }
