Index: applications/editors/josm/plugins/buildings_tools/build.xml
===================================================================
--- applications/editors/josm/plugins/buildings_tools/build.xml	(revision 34492)
+++ applications/editors/josm/plugins/buildings_tools/build.xml	(revision 34493)
@@ -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="13807"/>
+    <property name="plugin.main.version" value="14153"/>
     
     <!-- Configure these properties (replace "..." accordingly).
Index: applications/editors/josm/plugins/buildings_tools/src/buildings_tools/Building.java
===================================================================
--- applications/editors/josm/plugins/buildings_tools/src/buildings_tools/Building.java	(revision 34492)
+++ applications/editors/josm/plugins/buildings_tools/src/buildings_tools/Building.java	(revision 34493)
@@ -18,5 +18,4 @@
 import javax.swing.JOptionPane;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.CreateCircleAction;
 import org.openstreetmap.josm.command.AddCommand;
@@ -25,4 +24,5 @@
 import org.openstreetmap.josm.command.DeleteCommand;
 import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.UndoRedoHandler;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -306,5 +306,5 @@
             }
             if (nodes[i].getCoor().isOutSideWorld()) {
-                JOptionPane.showMessageDialog(Main.parent,
+                JOptionPane.showMessageDialog(MainApplication.getMainFrame(),
                         tr("Cannot place building outside of the world."));
                 return null;
@@ -326,5 +326,5 @@
         if (addNodesCmd.size() > 0) {
             Command addNodes = new SequenceCommand(tr("Add nodes for building"), addNodesCmd);
-            Main.main.undoRedo.add(addNodes);
+            UndoRedoHandler.getInstance().add(addNodes);
         }
 
@@ -370,5 +370,5 @@
             }
             if (nodes[i].getCoor().isOutSideWorld()) {
-                JOptionPane.showMessageDialog(Main.parent,
+                JOptionPane.showMessageDialog(MainApplication.getMainFrame(),
                         tr("Cannot place building outside of the world."));
                 return null;
@@ -398,5 +398,5 @@
 
         Command c = new SequenceCommand(tr("Create building"), cmds);
-        Main.main.undoRedo.add(c);
+        UndoRedoHandler.getInstance().add(c);
         return w;
     }
@@ -424,5 +424,5 @@
                 addressCmds.add(new DeleteCommand(addrNode));
                 Command c = new SequenceCommand(tr("Add address for building"), addressCmds);
-                Main.main.undoRedo.add(c);
+                UndoRedoHandler.getInstance().add(c);
             }
         }
Index: applications/editors/josm/plugins/buildings_tools/src/buildings_tools/MergeAddrPointsAction.java
===================================================================
--- applications/editors/josm/plugins/buildings_tools/src/buildings_tools/MergeAddrPointsAction.java	(revision 34492)
+++ applications/editors/josm/plugins/buildings_tools/src/buildings_tools/MergeAddrPointsAction.java	(revision 34493)
@@ -17,5 +17,4 @@
 import javax.swing.JOptionPane;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.command.ChangeCommand;
@@ -24,4 +23,5 @@
 import org.openstreetmap.josm.command.DeleteCommand;
 import org.openstreetmap.josm.command.SequenceCommand;
+import org.openstreetmap.josm.data.UndoRedoHandler;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -145,5 +145,5 @@
                     .setIcon(JOptionPane.INFORMATION_MESSAGE).show();
         if (!cmds.isEmpty())
-            Main.main.undoRedo.add(new SequenceCommand("Merge addresses", cmds));
+            UndoRedoHandler.getInstance().add(new SequenceCommand("Merge addresses", cmds));
     }
 
Index: applications/editors/josm/plugins/buildings_tools/src/buildings_tools/MyDialog.java
===================================================================
--- applications/editors/josm/plugins/buildings_tools/src/buildings_tools/MyDialog.java	(revision 34492)
+++ applications/editors/josm/plugins/buildings_tools/src/buildings_tools/MyDialog.java	(revision 34493)
@@ -11,6 +11,6 @@
 import javax.swing.JPanel;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.ExtendedDialog;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.tools.GBC;
 
@@ -29,5 +29,5 @@
 
     public MyDialog(String title) {
-        super(Main.parent, title, BUTTON_TEXTS, true);
+        super(MainApplication.getMainFrame(), title, BUTTON_TEXTS, true);
         contentInsets = new Insets(15, 15, 5, 15);
         setButtonIcons(BUTTON_ICONS);
Index: applications/editors/josm/plugins/buildings_tools/src/buildings_tools/ToolSettings.java
===================================================================
--- applications/editors/josm/plugins/buildings_tools/src/buildings_tools/ToolSettings.java	(revision 34492)
+++ applications/editors/josm/plugins/buildings_tools/src/buildings_tools/ToolSettings.java	(revision 34493)
@@ -11,6 +11,6 @@
 import java.util.NoSuchElementException;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.preferences.BooleanProperty;
+import org.openstreetmap.josm.spi.preferences.Config;
 import org.openstreetmap.josm.tools.Logging;
 
@@ -73,10 +73,10 @@
             values.add(entry.getValue());
         }
-        Main.pref.putList("buildings_tools.tags", values);
+        Config.getPref().putList("buildings_tools.tags", values);
     }
 
     private static void loadTags() {
         TAGS.clear();
-        Collection<String> values = Main.pref.getList("buildings_tools.tags",
+        Collection<String> values = Config.getPref().getList("buildings_tools.tags",
                 Arrays.asList("building", "yes"));
         try {
@@ -90,9 +90,9 @@
 
     public static void saveShape(Shape shape) {
-        Main.pref.put("buildings_tool.shape", shape.name());
+        Config.getPref().put("buildings_tool.shape", shape.name());
     }
 
     private static Shape loadShape() {
-        String shape = Main.pref.get("buildings_tool.shape");
+        String shape = Config.getPref().get("buildings_tool.shape");
         if (ToolSettings.Shape.CIRCLE.name().equals(shape)) {
             ToolSettings.shape = Shape.CIRCLE;
@@ -105,17 +105,17 @@
 
     public static void setBBMode(boolean bbmode) {
-        Main.pref.putBoolean("buildings_tools.bbmode", bbmode);
+        Config.getPref().putBoolean("buildings_tools.bbmode", bbmode);
     }
 
     public static boolean isBBMode() {
-        return Main.pref.getBoolean("buildings_tools.bbmode", false);
+        return Config.getPref().getBoolean("buildings_tools.bbmode", false);
     }
 
     public static void setSoftCursor(boolean softCursor) {
-        Main.pref.putBoolean("buildings_tools.softcursor", softCursor);
+        Config.getPref().putBoolean("buildings_tools.softcursor", softCursor);
     }
 
     public static boolean isSoftCursor() {
-        return Main.pref.getBoolean("buildings_tools.softcursor", false);
+        return Config.getPref().getBoolean("buildings_tools.softcursor", false);
     }
 
