Index: trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java	(revision 9471)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java	(revision 9472)
@@ -9,4 +9,5 @@
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
@@ -318,20 +319,34 @@
      *
      * @param layer the layer in whose context the relation is deleted. Must not be null.
-     * @param toDelete  the relation to be deleted. Must  not be null.
+     * @param toDelete  the relation to be deleted. Must not be null.
      * @throws IllegalArgumentException if layer is null
-     * @throws IllegalArgumentException if toDelete is nul
+     * @throws IllegalArgumentException if toDelete is null
      */
     public static void deleteRelation(OsmDataLayer layer, Relation toDelete) {
+        deleteRelations(layer, Collections.singleton(toDelete));
+    }
+
+    /**
+     * Deletes the relations in the context of the given layer.
+     *
+     * @param layer the layer in whose context the relations are deleted. Must not be null.
+     * @param toDelete  the relations to be deleted. Must not be null.
+     * @throws IllegalArgumentException if layer is null
+     * @throws IllegalArgumentException if toDelete is null
+     */
+    public static void deleteRelations(OsmDataLayer layer, Collection<Relation> toDelete) {
         CheckParameterUtil.ensureParameterNotNull(layer, "layer");
         CheckParameterUtil.ensureParameterNotNull(toDelete, "toDelete");
 
-        Command cmd = DeleteCommand.delete(layer, Collections.singleton(toDelete));
+        final Command cmd = DeleteCommand.delete(layer, toDelete);
         if (cmd != null) {
             // cmd can be null if the user cancels dialogs DialogCommand displays
             Main.main.undoRedo.add(cmd);
-            if (getCurrentDataSet().getSelectedRelations().contains(toDelete)) {
-                getCurrentDataSet().toggleSelected(toDelete);
+            for (Relation relation : toDelete) {
+                if (getCurrentDataSet().getSelectedRelations().contains(relation)) {
+                    getCurrentDataSet().toggleSelected(relation);
+                }
+                RelationDialogManager.getRelationDialogManager().close(layer, relation);
             }
-            RelationDialogManager.getRelationDialogManager().close(layer, toDelete);
         }
     }
Index: trunk/src/org/openstreetmap/josm/actions/relation/DeleteRelationsAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/relation/DeleteRelationsAction.java	(revision 9471)
+++ trunk/src/org/openstreetmap/josm/actions/relation/DeleteRelationsAction.java	(revision 9472)
@@ -5,6 +5,8 @@
 
 import java.awt.event.ActionEvent;
+import java.util.Collection;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.mapmode.DeleteAction;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -15,5 +17,4 @@
  */
 public class DeleteRelationsAction extends AbstractRelationAction {
-    static class AbortException extends Exception {}
 
     /**
@@ -26,9 +27,8 @@
     }
 
-    protected void deleteRelation(Relation toDelete) {
+    protected void deleteRelation(Collection<Relation> toDelete) {
         if (toDelete == null)
             return;
-        org.openstreetmap.josm.actions.mapmode.DeleteAction
-                .deleteRelation(Main.main.getEditLayer(), toDelete);
+        DeleteAction.deleteRelations(Main.main.getEditLayer(), toDelete);
         // clear selection after deletion
         if (Main.map.relationListDialog != null)
@@ -40,8 +40,5 @@
         if (!isEnabled() || !Main.main.hasEditLayer())
             return;
-        for (Relation r : relations) {
-            deleteRelation(r);
-        }
+        deleteRelation(relations);
     }
 }
-
