Index: src/org/openstreetmap/josm/command/ChangeRelationMemberRoleCommand.java
===================================================================
--- src/org/openstreetmap/josm/command/ChangeRelationMemberRoleCommand.java	(revision 2595)
+++ src/org/openstreetmap/josm/command/ChangeRelationMemberRoleCommand.java	(working copy)
@@ -13,6 +13,7 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.gui.DefaultNameFormatter;
 import org.openstreetmap.josm.tools.ImageProvider;
 
@@ -48,7 +49,7 @@
         }
 
         oldRole = relation.getMember(position).getRole();
-        relation.getMember(position).getRole().equals(newRole);
+        relation.setMember(position, new RelationMember(newRole, relation.getMember(position).getMember()));
 
         oldModified = relation.isModified();
         relation.setModified(true);
Index: src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java
===================================================================
--- src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java	(revision 2595)
+++ src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java	(working copy)
@@ -11,7 +11,6 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.OsmUtils;
@@ -141,7 +140,12 @@
             new HashMap<OsmPrimitive, List<RoleCorrection>>();
         roleCorrectionMap.put(way, new ArrayList<RoleCorrection>());
 
-        for (Relation relation : Main.main.getCurrentDataSet().getRelations()) {
+        Collection<OsmPrimitive> referrers = oldway.getReferrers();
+        for (OsmPrimitive referrer: referrers) {
+            if (! (referrer instanceof Relation)) {
+                continue;
+            }
+            Relation relation = (Relation)referrer;
             int position = 0;
             for (RelationMember member : relation.getMembers()) {
                 if (!member.getMember().hasEqualSemanticAttributes(oldway)
