Index: /trunk/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java	(revision 15475)
+++ /trunk/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java	(revision 15476)
@@ -12,7 +12,10 @@
 import org.openstreetmap.josm.data.osm.IRelation;
 import org.openstreetmap.josm.data.osm.OsmData;
+import org.openstreetmap.josm.data.osm.OsmUtils;
+import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.io.NetworkManager;
 import org.openstreetmap.josm.io.OnlineResource;
 import org.openstreetmap.josm.tools.SubclassFilteredCollection;
+import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -52,4 +55,9 @@
     }
 
+    protected final boolean canModify() {
+        SubclassFilteredCollection<IRelation<?>, Relation> filteredRelations = Utils.filteredCollection(relations, Relation.class);
+        return OsmUtils.isOsmCollectionEditable(filteredRelations) && filteredRelations.parallelStream().anyMatch(r -> !r.isDeleted());
+    }
+
     protected final boolean canDownload() {
         if (relations.isEmpty()) {
@@ -60,5 +68,5 @@
             && ds != null && !ds.isLocked() && DownloadPolicy.BLOCKED != ds.getDownloadPolicy();
     }
-    
+
     protected void setHelpId(String helpId) {
         putValue("help", helpId);
Index: /trunk/src/org/openstreetmap/josm/actions/relation/DeleteRelationsAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/relation/DeleteRelationsAction.java	(revision 15475)
+++ /trunk/src/org/openstreetmap/josm/actions/relation/DeleteRelationsAction.java	(revision 15476)
@@ -8,5 +8,4 @@
 
 import org.openstreetmap.josm.actions.mapmode.DeleteAction;
-import org.openstreetmap.josm.data.osm.OsmUtils;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.gui.MainApplication;
@@ -52,5 +51,5 @@
     @Override
     protected void updateEnabledState() {
-        setEnabled(OsmUtils.isOsmCollectionEditable(relations));
+        setEnabled(canModify());
     }
 }
Index: /trunk/src/org/openstreetmap/josm/actions/relation/EditRelationAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/relation/EditRelationAction.java	(revision 15475)
+++ /trunk/src/org/openstreetmap/josm/actions/relation/EditRelationAction.java	(revision 15476)
@@ -15,5 +15,4 @@
 import org.openstreetmap.josm.data.osm.IRelation;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
-import org.openstreetmap.josm.data.osm.OsmUtils;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
@@ -87,15 +86,5 @@
     @Override
     protected void updateEnabledState() {
-        boolean enabled = false;
-        SubclassFilteredCollection<IRelation<?>, Relation> filteredRelations = Utils.filteredCollection(relations, Relation.class);
-        if (OsmUtils.isOsmCollectionEditable(filteredRelations)) {
-            for (Relation r : filteredRelations) {
-                if (!r.isDeleted()) {
-                    enabled = true;
-                    break;
-                }
-            }
-        }
-        setEnabled(enabled);
+        setEnabled(canModify());
     }
 }
