Index: /trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 11736)
+++ /trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 11737)
@@ -214,5 +214,7 @@
                 final SplitWayResult result = doSplitWay(getLayerManager().getEditLayer(), selectedWay, wayToKeep, newWays, sel);
                 Main.main.undoRedo.add(result.getCommand());
-                getLayerManager().getEditDataSet().setSelected(result.getNewSelection());
+                if (!result.getNewSelection().isEmpty()) {
+                    getLayerManager().getEditDataSet().setSelected(result.getNewSelection());
+                }
             }
         }
@@ -293,5 +295,7 @@
                         selectedWay, list.getSelectedValue(), newWays, selection);
                 Main.main.undoRedo.add(result.getCommand());
-                Main.getLayerManager().getEditDataSet().setSelected(result.getNewSelection());
+                if (!result.getNewSelection().isEmpty()) {
+                    Main.getLayerManager().getEditDataSet().setSelected(result.getNewSelection());
+                }
             }
         }
@@ -539,9 +543,11 @@
                 Arrays.asList("outer", "inner", "forward", "backward", "north", "south", "east", "west"));
 
+        final boolean isMapModeDraw = Main.map != null && Main.map.mapMode == Main.map.mapModeDraw;
+
         // Change the original way
         final Way changedWay = new Way(way);
         changedWay.setNodes(wayToKeep.getNodes());
         commandList.add(layer != null ? new ChangeCommand(layer, way, changedWay) : new ChangeCommand(way.getDataSet(), way, changedWay));
-        if (!newSelection.contains(way)) {
+        if (!isMapModeDraw && !newSelection.contains(way)) {
             newSelection.add(way);
         }
@@ -549,5 +555,7 @@
         newWays.remove(wayToKeep);
 
-        newSelection.addAll(newWays);
+        if (!isMapModeDraw) {
+            newSelection.addAll(newWays);
+        }
         for (Way wayToAdd : newWays) {
             commandList.add(layer != null ? new AddCommand(layer, wayToAdd) : new AddCommand(way.getDataSet(), wayToAdd));
