Index: trunk/src/org/openstreetmap/josm/gui/ConditionalOptionPaneUtil.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/ConditionalOptionPaneUtil.java	(revision 6594)
+++ trunk/src/org/openstreetmap/josm/gui/ConditionalOptionPaneUtil.java	(revision 6595)
@@ -71,4 +71,12 @@
 
     /**
+     * Determines whether the key has been marked to be part of a bulk operation (in order to provide a "Do not show again (this operation)" option).
+     * @param prefKey the preference key
+     */
+    public static boolean isInBulkOperation(final String prefKey) {
+        return immediateActive.contains(prefKey);
+    }
+
+    /**
      * Marks the ending of a bulk operation. Removes the "Do not show again (this operation)" result value.
      * @param prefKey the preference key
@@ -109,5 +117,5 @@
         if (isYesOrNo(ret))
             return ret;
-        MessagePanel pnl = new MessagePanel(message, immediateActive.contains(preferenceKey));
+        MessagePanel pnl = new MessagePanel(message, isInBulkOperation(preferenceKey));
         ret = JOptionPane.showOptionDialog(parent, pnl, title, optionType, messageType, null, options, defaultOption);
         if (isYesOrNo(ret)) {
@@ -152,5 +160,5 @@
         if (isYesOrNo(ret))
             return ret == trueOption;
-        MessagePanel pnl = new MessagePanel(message, immediateActive.contains(preferenceKey));
+        MessagePanel pnl = new MessagePanel(message, isInBulkOperation(preferenceKey));
         ret = JOptionPane.showConfirmDialog(parent, pnl, title, optionType, messageType);
         if ((isYesOrNo(ret))) {
@@ -185,5 +193,5 @@
         if (getDialogReturnValue(preferenceKey) == Integer.MAX_VALUE)
             return;
-        MessagePanel pnl = new MessagePanel(message, immediateActive.contains(preferenceKey));
+        MessagePanel pnl = new MessagePanel(message, isInBulkOperation(preferenceKey));
         JOptionPane.showMessageDialog(parent, pnl, title, messageType);
         pnl.getNotShowAgain().store(preferenceKey, Integer.MAX_VALUE);
Index: trunk/src/org/openstreetmap/josm/gui/ExtendedDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/ExtendedDialog.java	(revision 6594)
+++ trunk/src/org/openstreetmap/josm/gui/ExtendedDialog.java	(revision 6595)
@@ -370,5 +370,5 @@
 
         if (toggleable) {
-            togglePanel = new ConditionalOptionPaneUtil.MessagePanel(null, false);
+            togglePanel = new ConditionalOptionPaneUtil.MessagePanel(null, ConditionalOptionPaneUtil.isInBulkOperation(togglePref));
             gc.gridx = icon != null ? 1 : 0;
             gc.gridy = y++;
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 6594)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 6595)
@@ -75,4 +75,5 @@
 import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode;
 import org.openstreetmap.josm.data.osm.event.SelectionEventManager;
+import org.openstreetmap.josm.gui.ConditionalOptionPaneUtil;
 import org.openstreetmap.josm.gui.DefaultNameFormatter;
 import org.openstreetmap.josm.gui.ExtendedDialog;
@@ -845,4 +846,6 @@
     class DeleteAction extends JosmAction implements ListSelectionListener {
 
+        static final String DELETE_FROM_RELATION_PREF = "delete_from_relation";
+
         public DeleteAction() {
             super(tr("Delete"), "dialogs/delete", tr("Delete the selected key in all objects"),
@@ -901,5 +904,5 @@
             ed.setButtonIcons(new String[] {"dialogs/delete.png", "cancel.png"});
             ed.setContent(tr("Really delete selection from relation {0}?", cur.getDisplayName(DefaultNameFormatter.getInstance())));
-            ed.toggleEnable("delete_from_relation");
+            ed.toggleEnable(DELETE_FROM_RELATION_PREF);
             ed.showDialog();
 
@@ -925,9 +928,11 @@
                 deleteTags(rows);
             } else if (membershipTable.getSelectedRowCount() > 0) {
+                ConditionalOptionPaneUtil.startBulkOperation(DELETE_FROM_RELATION_PREF);
                 int[] rows = membershipTable.getSelectedRows();
-                // delete from last relation to convserve row numbers in the table
+                // delete from last relation to conserve row numbers in the table
                 for (int i=rows.length-1; i>=0; i--) {
                     deleteFromRelation(rows[i]);
                 }
+                ConditionalOptionPaneUtil.endBulkOperation(DELETE_FROM_RELATION_PREF);
             }
         }
