Index: /trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 2943)
+++ /trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 2944)
@@ -700,10 +700,18 @@
     public void unlinkPrimitiveFromRelations(OsmPrimitive primitive) {
         for (Relation relation : relations) {
-            Iterator<RelationMember> it = relation.getMembers().iterator();
+            List<RelationMember> members = relation.getMembers();
+
+            Iterator<RelationMember> it = members.iterator();
+            boolean removed = false;
             while(it.hasNext()) {
                 RelationMember member = it.next();
                 if (member.getMember().equals(primitive)) {
                     it.remove();
+                    removed = true;
                 }
+            }
+
+            if (removed) {
+                relation.setMembers(members);
             }
         }
