Index: /trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java	(revision 17186)
+++ /trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java	(revision 17187)
@@ -188,6 +188,5 @@
         List<Command> cmds = new ArrayList<>();
         List<Node> newNodes = new ArrayList<>();
-        Way modWay = modifyWay(selectedNode, way, cmds, newNodes);
-        cmds.add(new ChangeNodesCommand(way, modWay.getNodes()));
+        cmds.add(new ChangeNodesCommand(way, modifyWay(selectedNode, way, cmds, newNodes)));
         if (dialog != null) {
             update(dialog, selectedNode, newNodes, cmds);
@@ -301,5 +300,5 @@
      * @return new way The modified way. Change command must be handled by the caller
      */
-    private static Way modifyWay(Node originalNode, Way w, List<Command> cmds, List<Node> newNodes) {
+    private static List<Node> modifyWay(Node originalNode, Way w, List<Command> cmds, List<Node> newNodes) {
         // clone the node for the way
         Node newNode = cloneNode(originalNode, cmds);
@@ -308,8 +307,5 @@
         List<Node> nn = new ArrayList<>(w.getNodes());
         nn.replaceAll(n -> n == originalNode ? newNode : n);
-        Way newWay = new Way(w);
-        newWay.setNodes(nn);
-
-        return newWay;
+        return nn;
     }
 
@@ -393,5 +389,5 @@
             if (w.isFirstLastNode(selectedNode))
                 warnParents.add(w);
-            cmds.add(new ChangeNodesCommand(w, modifyWay(selectedNode, w, cmds, newNodes).getNodes()));
+            cmds.add(new ChangeNodesCommand(w, modifyWay(selectedNode, w, cmds, newNodes)));
         }
 
