Index: /applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RelationEditMode.java
===================================================================
--- /applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RelationEditMode.java	(revision 19241)
+++ /applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RelationEditMode.java	(revision 19242)
@@ -13,5 +13,4 @@
 import org.openstreetmap.josm.actions.mapmode.MapMode;
 import org.openstreetmap.josm.command.ChangeCommand;
-import org.openstreetmap.josm.command.RemoveRelationMemberCommand;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Relation;
Index: /applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RemoveRelationMemberCommand.java
===================================================================
--- /applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RemoveRelationMemberCommand.java	(revision 19242)
+++ /applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RemoveRelationMemberCommand.java	(revision 19242)
@@ -0,0 +1,86 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.plugins.routes;
+
+import static org.openstreetmap.josm.tools.I18n.marktr;
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.util.Collection;
+
+import javax.swing.JLabel;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.MutableTreeNode;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.Command;
+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;
+
+/**
+ * Command that adds a relation to an OSM object
+ *
+ * @author daveh
+ */
+public class RemoveRelationMemberCommand extends Command {
+
+    // container object in which to replace a sub object
+    private final Relation relation;
+    // the sub-object to be replaced
+    private final RelationMember member;
+    // its replacement
+    private int location = -1;
+
+    public RemoveRelationMemberCommand(Relation _relation, RelationMember _member) {
+        this.relation = _relation;
+        this.member = _member;
+    }
+    public RemoveRelationMemberCommand(Relation _relation, RelationMember _member, int _location) {
+        this.relation = _relation;
+        this.member = _member;
+        location = _location;
+    }
+
+    @Override public boolean executeCommand() {
+        super.executeCommand();
+        int removeIndex = relation.getMembers().indexOf(member);
+        if ((location != -1) && (removeIndex != location)) {
+            Main.debug("error removing relation member");
+            return false;
+        } else {
+            relation.removeMember(removeIndex);
+            relation.setModified(true);
+            return true;
+        }
+    }
+
+    @Override public void undoCommand() {
+        super.undoCommand();
+        relation.addMember(member);
+        relation.setModified(this.getOrig(relation).isModified());
+    }
+
+    @Override public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted, Collection<OsmPrimitive> added) {}
+
+    @Override public MutableTreeNode description() {
+        String msg = "";
+        switch(OsmPrimitiveType.from(member.getMember())) {
+            case NODE: msg = marktr("Remove node ''{0}'' at position {1} from relation ''{2}''"); break;
+            case WAY: msg = marktr("Remove way ''{0}'' at position {1} from relation ''{2}''"); break;
+            case RELATION: msg = marktr("Remove relation ''{0}'' at position {1} from relation ''{2}''"); break;
+        }
+        return new DefaultMutableTreeNode(
+                new JLabel(
+                        tr(msg,
+                                member.getMember().getDisplayName(DefaultNameFormatter.getInstance()),
+                                relation.getMembers().indexOf(member),
+                                relation.getDisplayName(DefaultNameFormatter.getInstance())
+                        ),
+                        ImageProvider.get(OsmPrimitiveType.from(relation)),
+                        JLabel.HORIZONTAL
+                )
+        );
+    }
+}
