Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 6023)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 6024)
@@ -14,4 +14,5 @@
 import java.awt.event.FocusAdapter;
 import java.awt.event.FocusEvent;
+import java.awt.event.InputEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
@@ -355,4 +356,5 @@
         memberTableModel.getSelectionModel().addListSelectionListener(
                 new ListSelectionListener() {
+                    @Override
                     public void valueChanged(ListSelectionEvent e) {
                         tfRole.setEnabled(memberTable.getSelectedRowCount() > 0);
@@ -669,5 +671,12 @@
     }
 
+    
     private void registerCopyPasteAction(AbstractAction action, Object actionName, KeyStroke shortcut) {
+        int mods = shortcut.getModifiers();
+        int code = shortcut.getKeyCode();
+        if (code!=KeyEvent.VK_INSERT && (mods == 0 || mods == InputEvent.SHIFT_DOWN_MASK)) {
+            Main.info(tr("Sorry, shortcut \"{0}\" can not be enabled in Relation editor dialog"), shortcut);
+            return;
+        }
         getRootPane().getActionMap().put(actionName, action);
         getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(shortcut, actionName);
@@ -818,4 +827,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             try {
@@ -827,4 +837,5 @@
         }
 
+        @Override
         public void tableChanged(TableModelEvent e) {
             refreshEnabled();
@@ -844,4 +855,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             try {
@@ -853,4 +865,5 @@
         }
 
+        @Override
         public void tableChanged(TableModelEvent e) {
             refreshEnabled();
@@ -872,4 +885,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             try {
@@ -883,8 +897,10 @@
         }
 
+        @Override
         public void tableChanged(TableModelEvent e) {
             refreshEnabled();
         }
 
+        @Override
         public void valueChanged(ListSelectionEvent e) {
             refreshEnabled();
@@ -906,4 +922,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             try {
@@ -916,8 +933,10 @@
         }
 
+        @Override
         public void tableChanged(TableModelEvent e) {
             refreshEnabled();
         }
 
+        @Override
         public void valueChanged(ListSelectionEvent e) {
             refreshEnabled();
@@ -945,8 +964,10 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             memberTableModel.removeMembersReferringTo(selectionTableModel.getSelection());
         }
 
+        @Override
         public void tableChanged(TableModelEvent e) {
             updateEnabledState();
@@ -978,8 +999,10 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             memberTableModel.selectMembersReferringTo(getLayer().data.getSelected());
         }
 
+        @Override
         public void tableChanged(TableModelEvent e) {
             updateEnabledState();
@@ -1004,8 +1027,10 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             getLayer().data.setSelected(memberTableModel.getSelectedChildPrimitives());
         }
 
+        @Override
         public void valueChanged(ListSelectionEvent e) {
             updateEnabledState();
@@ -1025,4 +1050,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             memberTableModel.sort();
@@ -1033,4 +1059,5 @@
         }
 
+        @Override
         public void tableChanged(TableModelEvent e) {
             updateEnabledState();
@@ -1048,4 +1075,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             memberTableModel.reverse();
@@ -1056,4 +1084,5 @@
         }
 
+        @Override
         public void tableChanged(TableModelEvent e) {
             updateEnabledState();
@@ -1073,8 +1102,10 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             memberTableModel.moveUp(memberTable.getSelectedRows());
         }
 
+        @Override
         public void valueChanged(ListSelectionEvent e) {
             setEnabled(memberTableModel.canMoveUp(memberTable.getSelectedRows()));
@@ -1094,8 +1125,10 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             memberTableModel.moveDown(memberTable.getSelectedRows());
         }
 
+        @Override
         public void valueChanged(ListSelectionEvent e) {
             setEnabled(memberTableModel.canMoveDown(memberTable.getSelectedRows()));
@@ -1115,8 +1148,10 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             memberTableModel.remove(memberTable.getSelectedRows());
         }
 
+        @Override
         public void valueChanged(ListSelectionEvent e) {
             setEnabled(memberTableModel.canRemove(memberTable.getSelectedRows()));
@@ -1142,4 +1177,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             run();
@@ -1150,4 +1186,5 @@
         }
 
+        @Override
         public void propertyChange(PropertyChangeEvent evt) {
             if (evt.getPropertyName().equals(RELATION_SNAPSHOT_PROP)) {
@@ -1305,4 +1342,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             run();
@@ -1340,4 +1378,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             run();
@@ -1357,4 +1396,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             if (!memberTableModel.hasSameMembersAs(getRelationSnapshot()) || tagEditorPanel.getModel().isDirty()) {
@@ -1435,4 +1475,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             tagEditorPanel.getModel().appendNewTag();
@@ -1452,4 +1493,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             if (!isEnabled())
@@ -1467,4 +1509,5 @@
         }
 
+        @Override
         public void tableChanged(TableModelEvent e) {
             updateEnabledState();
@@ -1482,4 +1525,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             if (!isEnabled())
@@ -1497,8 +1541,10 @@
         }
 
+        @Override
         public void valueChanged(ListSelectionEvent e) {
             updateEnabledState();
         }
 
+        @Override
         public void tableChanged(TableModelEvent e) {
             updateEnabledState();
@@ -1552,4 +1598,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             if (isEmptyRole()) {
@@ -1560,16 +1607,20 @@
         }
 
+        @Override
         public void valueChanged(ListSelectionEvent e) {
             refreshEnabled();
         }
 
+        @Override
         public void changedUpdate(DocumentEvent e) {
             refreshEnabled();
         }
 
+        @Override
         public void insertUpdate(DocumentEvent e) {
             refreshEnabled();
         }
 
+        @Override
         public void removeUpdate(DocumentEvent e) {
             refreshEnabled();
@@ -1590,4 +1641,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             Relation copy = new Relation();
@@ -1643,4 +1695,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             if (!isEnabled())
@@ -1649,4 +1702,5 @@
         }
 
+        @Override
         public void valueChanged(ListSelectionEvent e) {
             refreshEnabled();
