Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java	(revision 11081)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java	(revision 11082)
@@ -15,4 +15,5 @@
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
@@ -479,5 +480,12 @@
                     nodes.remove(candidateNode);
                     newWay.setNodes(nodes);
-                    Main.main.undoRedo.add(new ChangeCommand(targetWay, newWay));
+                    if (nodes.size() < 2) {
+                        final Command deleteCmd = DeleteCommand.delete(getLayerManager().getEditLayer(), Collections.singleton(targetWay), true);
+                        if (deleteCmd != null) {
+                            Main.main.undoRedo.add(deleteCmd);
+                        }
+                    } else {
+                        Main.main.undoRedo.add(new ChangeCommand(targetWay, newWay));
+                    }
                 } else if (candidateNode.isTagged()) {
                     JOptionPane.showMessageDialog(Main.parent,
@@ -485,7 +493,5 @@
                             tr("Error"), JOptionPane.ERROR_MESSAGE);
                 } else {
-                    List<Node> nodeList = new ArrayList<>();
-                    nodeList.add(candidateNode);
-                    Command deleteCmd = DeleteCommand.delete(getLayerManager().getEditLayer(), nodeList, true);
+                    final Command deleteCmd = DeleteCommand.delete(getLayerManager().getEditLayer(), Collections.singleton(candidateNode), true);
                     if (deleteCmd != null) {
                         Main.main.undoRedo.add(deleteCmd);
