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 34806)
+++ /applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/Building.java	(revision 34807)
@@ -337,5 +337,5 @@
         w = ways.get(0);
 
-        addAddress(w);
+        addAddress(w, null);
 
         return w;
@@ -386,5 +386,5 @@
         cmds.add(new AddCommand(ds, w));
 
-        addAddress(w);
+        addAddress(w, cmds);
 
         if (snap) {
@@ -452,9 +452,9 @@
     }
 
-    private void addAddress(Way w) {
+    private void addAddress(Way w, Collection<Command> cmdList) {
         if (ToolSettings.PROP_USE_ADDR_NODE.get()) {
             Node addrNode = getAddressNode();
             if (addrNode != null) {
-                Collection<Command> addressCmds = new LinkedList<>();
+                Collection<Command> addressCmds = cmdList != null ? cmdList : new LinkedList<>();
                 for (Entry<String, String> entry : addrNode.getKeys().entrySet()) {
                     w.put(entry.getKey(), entry.getValue());
@@ -473,6 +473,8 @@
                 }
                 addressCmds.add(new DeleteCommand(addrNode));
-                Command c = new SequenceCommand(tr("Add address for building"), addressCmds);
-                UndoRedoHandler.getInstance().add(c);
+                if (cmdList == null) {
+                    Command c = new SequenceCommand(tr("Add address for building"), addressCmds);
+                    UndoRedoHandler.getInstance().add(c);
+                }
             }
         }
