Index: applications/editors/josm/plugins/buildings_tools/build.xml
===================================================================
--- applications/editors/josm/plugins/buildings_tools/build.xml	(revision 31360)
+++ applications/editors/josm/plugins/buildings_tools/build.xml	(revision 31361)
@@ -4,5 +4,5 @@
     <property name="commit.message" value="BuildingTools: Alt key to disable tags"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="8338"/>
+    <property name="plugin.main.version" value="8549"/>
     
     <!-- Configure these properties (replace "..." accordingly).
Index: applications/editors/josm/plugins/buildings_tools/src/buildings_tools/AdvancedSettingsDialog.java
===================================================================
--- applications/editors/josm/plugins/buildings_tools/src/buildings_tools/AdvancedSettingsDialog.java	(revision 31360)
+++ applications/editors/josm/plugins/buildings_tools/src/buildings_tools/AdvancedSettingsDialog.java	(revision 31361)
@@ -40,6 +40,5 @@
 
     public final void saveSettings() {
-        tagsModel.applyToTags(ToolSettings.getTags(), false);
-        ToolSettings.saveTags();
+        ToolSettings.saveTags(tagsModel.getTags());
         ToolSettings.setBBMode(cBigMode.isSelected());
         ToolSettings.setSoftCursor(cSoftCur.isSelected());
Index: applications/editors/josm/plugins/buildings_tools/src/buildings_tools/Building.java
===================================================================
--- applications/editors/josm/plugins/buildings_tools/src/buildings_tools/Building.java	(revision 31360)
+++ applications/editors/josm/plugins/buildings_tools/src/buildings_tools/Building.java	(revision 31361)
@@ -108,5 +108,5 @@
      */
     private double projection1(EastNorth p) {
-        final EastNorth vec = en[0].sub(p);
+        final EastNorth vec = p.subtract(en[0]);
         return (Math.sin(heading) * vec.east() + Math.cos(heading) * vec.north()) / meter;
     }
@@ -118,5 +118,5 @@
      */
     private double projection2(EastNorth p) {
-        final EastNorth vec = en[0].sub(p);
+        final EastNorth vec = p.subtract(en[0]);
         return (Math.cos(heading) * vec.east() - Math.sin(heading) * vec.north()) / meter;
     }
Index: applications/editors/josm/plugins/buildings_tools/src/buildings_tools/ToolSettings.java
===================================================================
--- applications/editors/josm/plugins/buildings_tools/src/buildings_tools/ToolSettings.java	(revision 31360)
+++ applications/editors/josm/plugins/buildings_tools/src/buildings_tools/ToolSettings.java	(revision 31361)
@@ -53,5 +53,7 @@
     }
 
-    public static void saveTags() {
+    public static void saveTags(Map<String, String> tags) {
+        TAGS.clear();
+        TAGS.putAll(tags);
         ArrayList<String> values = new ArrayList<>(TAGS.size() * 2);
         for (Entry<String, String> entry : TAGS.entrySet()) {
