Index: /applications/editors/josm/plugins/buildings_tools/src/buildings_tools/Building.java
===================================================================
--- /applications/editors/josm/plugins/buildings_tools/src/buildings_tools/Building.java	(revision 25904)
+++ /applications/editors/josm/plugins/buildings_tools/src/buildings_tools/Building.java	(revision 25905)
@@ -12,4 +12,5 @@
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map.Entry;
 
 import javax.swing.JOptionPane;
@@ -220,5 +221,5 @@
 
     /**
-     * Returns a node with "building=yes" tag under the building
+     * Returns a node with address tags under the building
      *
      * @return
@@ -231,6 +232,13 @@
         nodesloop:
         for (Node n : Main.main.getCurrentDataSet().searchNodes(bbox)) {
-            if (!n.isUsable() || n.getKeys().get("building") == null)
+            if (!n.isUsable())
                 continue;
+            tagcheck: do {
+                for (String key : n.getKeys().keySet()) {
+                    if (key.equals("building") || key.startsWith("addr:"))
+                        break tagcheck;
+                }
+                continue nodesloop;
+            } while (false);
             double x = projection1(latlon2eastNorth(n.getCoor()));
             double y = projection2(latlon2eastNorth(n.getCoor()));
@@ -289,8 +297,11 @@
                 cmds.add(new AddCommand(nodes[i]));
         }
+        w.setKeys(ToolSettings.getTags());
         cmds.add(new AddCommand(w));
         Node addrNode;
         if (ToolSettings.PROP_USE_ADDR_NODE.get() && (addrNode = getAddressNode()) != null) {
-            w.setKeys(addrNode.getKeys());
+            for (Entry<String, String> entry : addrNode.getKeys().entrySet()) {
+                w.put(entry.getKey(), entry.getValue());
+            }
             for (OsmPrimitive p : addrNode.getReferrers()) {
                 Relation r = (Relation) p;
@@ -306,6 +317,4 @@
             }
             cmds.add(new DeleteCommand(addrNode));
-        } else {
-            w.setKeys(ToolSettings.getTags());
         }
         Command c = new SequenceCommand(tr("Create building"), cmds);
