Index: trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 1705)
+++ trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 1706)
@@ -263,4 +263,5 @@
 
         }
+        Boolean warnmerole=false;
         Boolean warnme=false;
         // now copy all relations to new way also
@@ -268,5 +269,9 @@
             if (r.deleted || r.incomplete) continue;
             Relation c = null;
+            String type = "";
             int i = 0;
+
+            if(r.keys != null)
+                type = r.keys.get("type");
 
             for (RelationMember rm : r.members) {
@@ -274,4 +279,6 @@
                     if (rm.member == selectedWay)
                     {
+                        if(!("route".equals(type)) && !("multipolygon".equals(type)))
+                            warnme = true;
                         if (c == null)
                             c = new Relation(r);
@@ -284,6 +291,6 @@
                             em.member = wayToAdd;
                             em.role = rm.role;
-                            if(em.role.length() > 0)
-                                warnme = true;
+                            if(em.role.length() > 0 && !("multipolygon".equals(type)))
+                                warnmerole = true;
 
                             j++;
@@ -302,6 +309,8 @@
                 commandList.add(new ChangeCommand(r, c));
         }
-        if(warnme)
+        if(warnmerole)
             JOptionPane.showMessageDialog(Main.parent, tr("A role based relation membership was copied to all new ways.\nYou should verify this and correct it when necessary."));
+        else if(warnme)
+            JOptionPane.showMessageDialog(Main.parent, tr("A relation membership was copied to all new ways.\nYou should verify this and correct it when necessary."));
 
         NameVisitor v = new NameVisitor();
Index: trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java	(revision 1705)
+++ trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java	(revision 1706)
@@ -37,5 +37,5 @@
                     "^(" + a + "|" + b + ")(" + SEPARATOR + "|$)",
                     Pattern.CASE_INSENSITIVE);
-            endPattern = Pattern.compile(
+            endPattern = Pattern.compile("^.*" +
                     SEPARATOR + "(" + a + "|" + b + ")$",
                     Pattern.CASE_INSENSITIVE);
@@ -64,5 +64,6 @@
             new PrefixSuffixSwitcher[] {
                 new PrefixSuffixSwitcher("left", "right"),
-                new PrefixSuffixSwitcher("forward", "backward")
+                new PrefixSuffixSwitcher("forward", "backward"),
+                new PrefixSuffixSwitcher("forwards", "backwards")
             };
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 1705)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 1706)
@@ -29,5 +29,5 @@
     public CommandStackDialog(final MapFrame mapFrame) {
         super(tr("Command Stack"), "commandstack", tr("Open a list of all commands (undo buffer)."),
-        Shortcut.registerShortcut("subwindow:commandstack", tr("Toggle: {0}", tr("Command Stack")), KeyEvent.VK_O, Shortcut.GROUP_LAYER), 100);
+        Shortcut.registerShortcut("subwindow:commandstack", tr("Toggle: {0}", tr("Command Stack")), KeyEvent.VK_O, Shortcut.GROUP_LAYER, Shortcut.SHIFT_DEFAULT), 100);
         Main.main.undoRedo.listenerCommands.add(this);
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 1705)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 1706)
@@ -265,5 +265,5 @@
 
         buttonPanel.add(createButton(marktr("Remove"),"remove",
-                tr("Remove the member in the current table row from this relation"), KeyEvent.VK_M, new ActionListener() {
+                tr("Remove the member in the current table row from this relation"), KeyEvent.VK_X, new ActionListener() {
             public void actionPerformed(ActionEvent e) {
                 int[] rows = memberTable.getSelectedRows();
