Index: applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/BuildingSizeDialog.java
===================================================================
--- applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/BuildingSizeDialog.java	(revision 35908)
+++ applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/BuildingSizeDialog.java	(revision 35915)
@@ -22,4 +22,5 @@
     private final JCheckBox caddr = new JCheckBox(tr("Use Address dialog"));
     private final JCheckBox cAutoSelect = new JCheckBox(tr("Auto-select building"));
+    private final JCheckBox cAutoSelectReplaceSelection = new JCheckBox(tr("Auto-select replaces existing selection"));
     private final JCheckBox cAddrNode = new JCheckBox(tr("Use address nodes under buildings"));
     private final JRadioButton circleRadio = new JRadioButton(tr("Circle"));
@@ -42,4 +43,5 @@
         panel.add(caddr, GBC.eol().fill(GBC.HORIZONTAL));
         panel.add(cAutoSelect, GBC.eol().fill(GBC.HORIZONTAL));
+        panel.add(cAutoSelectReplaceSelection, GBC.eol().fill(GBC.HORIZONTAL));
         panel.add(cAddrNode, GBC.eol().fill(GBC.HORIZONTAL));
 
@@ -48,4 +50,5 @@
         caddr.setSelected(ToolSettings.isUsingAddr());
         cAutoSelect.setSelected(ToolSettings.isAutoSelect());
+        cAutoSelectReplaceSelection.setSelected(ToolSettings.isAutoSelectReplaceSelection());
         cAddrNode.setSelected(ToolSettings.PROP_USE_ADDR_NODE.get());
 
@@ -95,4 +98,5 @@
         ToolSettings.setAddrDialog(useAddr());
         ToolSettings.setAutoSelect(cAutoSelect.isSelected());
+        ToolSettings.setAutoSelectReplaceSelection(cAutoSelectReplaceSelection.isSelected());
         ToolSettings.PROP_USE_ADDR_NODE.put(cAddrNode.isSelected());
     }
Index: applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/DrawBuildingAction.java
===================================================================
--- applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/DrawBuildingAction.java	(revision 35908)
+++ applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/DrawBuildingAction.java	(revision 35915)
@@ -351,5 +351,6 @@
                     showAddrDialog(w);
                 if (ToolSettings.isAutoSelect()
-                        && (getLayerManager().getEditDataSet().getSelected().isEmpty() || shift)) {
+                        && (getLayerManager().getEditDataSet().getSelected().isEmpty() || shift ||
+                            ToolSettings.isAutoSelectReplaceSelection())) {
                     getLayerManager().getEditDataSet().setSelected(w);
                 }
Index: applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/ToolSettings.java
===================================================================
--- applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/ToolSettings.java	(revision 35908)
+++ applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/ToolSettings.java	(revision 35915)
@@ -31,5 +31,4 @@
     private static boolean useAddr;
     private static final Map<String, String> TAGS = new HashMap<>();
-    private static boolean autoSelect;
 
     public static Shape getShape() {
@@ -120,9 +119,17 @@
 
     public static boolean isAutoSelect() {
-        return autoSelect;
+        return Config.getPref().getBoolean("buildings_tools.autoselect", false);
     }
 
     public static void setAutoSelect(boolean autoSelect) {
-        ToolSettings.autoSelect = autoSelect;
+        Config.getPref().putBoolean("buildings_tools.autoselect", autoSelect);
+    }
+
+    public static boolean isAutoSelectReplaceSelection() {
+        return Config.getPref().getBoolean("buildings_tools.autoselect_replace_selection", false);
+    }
+
+    public static void setAutoSelectReplaceSelection(boolean autoSelectReplace) {
+        Config.getPref().putBoolean("buildings_tools.autoselect_replace_selection", autoSelectReplace);
     }
 
