Index: applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/Building.java
===================================================================
--- applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/Building.java	(revision 35573)
+++ applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/Building.java	(revision 35574)
@@ -16,5 +16,4 @@
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Map.Entry;
 import java.util.Set;
 
@@ -24,4 +23,5 @@
 import org.openstreetmap.josm.command.AddCommand;
 import org.openstreetmap.josm.command.ChangeCommand;
+import org.openstreetmap.josm.command.ChangeNodesCommand;
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.command.DeleteCommand;
@@ -427,7 +427,5 @@
             snapToWay(otherNodes, Arrays.asList(nodes));
             if (otherNodes.size() != other.getNodesCount()) {
-                Way newWay = new Way(other);
-                newWay.setNodes(otherNodes);
-                cmds.add(new ChangeCommand(other, newWay));
+                cmds.add(new ChangeNodesCommand(other, otherNodes));
             }
         }
@@ -471,7 +469,5 @@
             if (addrNode != null) {
                 Collection<Command> addressCmds = cmdList != null ? cmdList : new LinkedList<>();
-                for (Entry<String, String> entry : addrNode.getKeys().entrySet()) {
-                    w.put(entry.getKey(), entry.getValue());
-                }
+                addrNode.getKeys().forEach(w::put);
                 for (OsmPrimitive p : addrNode.getReferrers()) {
                     Relation r = (Relation) p;
