Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java	(revision 4474)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java	(revision 4475)
@@ -316,4 +316,7 @@
             // cmd can be null if the user cancels dialogs DialogCommand displays
             Main.main.undoRedo.add(cmd);
+            if (getCurrentDataSet().getSelectedRelations().contains(toDelete)) {
+            	getCurrentDataSet().toggleSelected(toDelete);
+            }
             RelationDialogManager.getRelationDialogManager().close(layer, toDelete);
         }
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 4474)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 4475)
@@ -329,11 +329,6 @@
         public void actionPerformed(ActionEvent e) {
             if (!isEnabled()) return;
-            int [] idx  = displaylist.getSelectedIndices();
-            ArrayList<Relation> toDelete = new ArrayList<Relation>(idx.length);
-            for (int i: idx) {
-                toDelete.add(model.getRelation(i));
-            }
-            for (Relation r: toDelete) {
-                deleteRelation(r);
+            for (int i: displaylist.getSelectedIndices()) {
+            	deleteRelation(model.getRelation(i));
             }
         }
