Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/AddressEditContainer.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/AddressEditContainer.java	(revision 32970)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/AddressEditContainer.java	(revision 33718)
@@ -10,5 +10,5 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.data.osm.Changeset;
+import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -24,5 +24,6 @@
 import org.openstreetmap.josm.data.osm.event.TagsChangedEvent;
 import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent;
-import org.openstreetmap.josm.data.osm.visitor.Visitor;
+import org.openstreetmap.josm.data.osm.visitor.OsmPrimitiveVisitor;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 
@@ -43,5 +44,5 @@
  *
  */
-public class AddressEditContainer implements Visitor, DataSetListener, IAddressEditContainerListener, IProblemVisitor, IAllKnowingTrashHeap {
+public class AddressEditContainer implements OsmPrimitiveVisitor, DataSetListener, IAddressEditContainerListener, IProblemVisitor, IAllKnowingTrashHeap {
 
     private Collection<? extends OsmPrimitive> workingSet;
@@ -300,8 +301,4 @@
     }
 
-    @Override
-    public void visit(Changeset cs) {
-    }
-
     /**
      * Gets the dictionary containing the collected streets.
@@ -489,6 +486,7 @@
             invalidate(workingSet);
         } else {
-            if (Main.getLayerManager().getEditDataSet() != null) {
-                invalidate(Main.getLayerManager().getEditDataSet().allPrimitives());
+            DataSet ds = MainApplication.getLayerManager().getEditDataSet();
+            if (ds != null) {
+                invalidate(ds.allPrimitives());
             }
         }
@@ -708,5 +706,5 @@
      * Internal class to handle results of {@link AddressEditContainer#getClosestStreetNames(String, int)}.
      */
-    private class StreetScore implements Comparable<StreetScore> {
+    private static class StreetScore implements Comparable<StreetScore> {
         private String name;
         private int score;
Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/FixAddressesMapMode.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/FixAddressesMapMode.java	(revision 32970)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/FixAddressesMapMode.java	(revision 33718)
@@ -7,13 +7,11 @@
 
 import org.openstreetmap.josm.actions.mapmode.MapMode;
-import org.openstreetmap.josm.gui.MapFrame;
 
 @SuppressWarnings("serial")
 public class FixAddressesMapMode extends MapMode {
 
-    public FixAddressesMapMode(MapFrame mapFrame) {
+    public FixAddressesMapMode() {
         super(tr("Fix addresses"), "incompleteaddress_24",
                 tr("Show dialog with incomplete addresses"),
-                mapFrame,
                 Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
     }
Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/FixAddressesPlugin.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/FixAddressesPlugin.java	(revision 32970)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/FixAddressesPlugin.java	(revision 33718)
@@ -2,6 +2,6 @@
 package org.openstreetmap.josm.plugins.fixAddresses;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.IconToggleButton;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.MapFrame;
@@ -30,6 +30,6 @@
 
         // ... and add them to the tools menu in main
-                MainMenu.add(Main.main.menu.toolsMenu, action, false, 0);
-        MainMenu.add(Main.main.menu.toolsMenu, incAddrAction);
+        MainMenu.add(MainApplication.getMenu().toolsMenu, action, false, 0);
+        MainMenu.add(MainApplication.getMenu().toolsMenu, incAddrAction);
 
         // create preferences instance
@@ -40,5 +40,5 @@
     public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
         if (newFrame != null) {
-            FixAddressesMapMode faMode = new FixAddressesMapMode(Main.map);
+            FixAddressesMapMode faMode = new FixAddressesMapMode();
             IconToggleButton faModeButton = new IconToggleButton(faMode);
             faModeButton.setVisible(true);
Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/FixAddressesPreferences.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/FixAddressesPreferences.java	(revision 32970)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/FixAddressesPreferences.java	(revision 33718)
@@ -50,6 +50,6 @@
      */
     private void saveToPrefs() {
-        Main.pref.put(FIX_ADDRESSES_SELECT_GUESSED_OBJECTS_KEY, isSelectGuessedObjects());
-        Main.pref.put(FIX_ADDRESSES_IGNORE_POST_CODE_KEY, isIgnorePostCode());
+        Main.pref.putBoolean(FIX_ADDRESSES_SELECT_GUESSED_OBJECTS_KEY, isSelectGuessedObjects());
+        Main.pref.putBoolean(FIX_ADDRESSES_IGNORE_POST_CODE_KEY, isIgnorePostCode());
     }
 
Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/GuessAddressRunnable.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/GuessAddressRunnable.java	(revision 32970)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/GuessAddressRunnable.java	(revision 33718)
@@ -9,7 +9,8 @@
 import java.util.List;
 
-import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.io.OsmTransferException;
@@ -120,5 +121,6 @@
     OsmTransferException {
 
-        if (Main.getLayerManager().getEditDataSet() == null || addressesToGuess == null) return;
+        DataSet ds = MainApplication.getLayerManager().getEditDataSet();
+        if (ds == null || addressesToGuess == null) return;
 
         isRunning = true;
@@ -153,5 +155,5 @@
 
                     // visit osm data
-                    for (Way way : Main.getLayerManager().getEditDataSet().getWays()) {
+                    for (Way way : ds.getWays()) {
                         if (canceled) {
                             break;
@@ -173,5 +175,5 @@
 
                     // visit osm data
-                    for (Node node : Main.getLayerManager().getEditDataSet().getNodes()) {
+                    for (Node node : ds.getNodes()) {
                         if (canceled) {
                             break;
Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/GuessedValueHandler.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/GuessedValueHandler.java	(revision 32970)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/GuessedValueHandler.java	(revision 33718)
@@ -2,10 +2,9 @@
 package org.openstreetmap.josm.plugins.fixAddresses;
 
-import org.openstreetmap.josm.data.osm.Changeset;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.Way;
-import org.openstreetmap.josm.data.osm.visitor.Visitor;
+import org.openstreetmap.josm.data.osm.visitor.OsmPrimitiveVisitor;
 
 /**
@@ -16,5 +15,5 @@
  * The default maximum distance is 100m.
  */
-public class GuessedValueHandler implements Visitor {
+public class GuessedValueHandler implements OsmPrimitiveVisitor {
 
     /** Default maximum distance (100m) */
@@ -191,8 +190,3 @@
         // nothing to do (yet)
     }
-
-    @Override
-    public void visit(Changeset cs) {
-        // nothing to do (yet)
-    }
 }
Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OsmUtils.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OsmUtils.java	(revision 32970)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OsmUtils.java	(revision 33718)
@@ -5,5 +5,4 @@
 import java.util.Locale;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -14,4 +13,5 @@
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.Pair;
@@ -202,6 +202,6 @@
         CheckParameterUtil.ensureParameterNotNull(addressList, "addressList");
 
-        if (Main.map == null && Main.map.mapView == null) return;   // nothing to do
-        if (addressList.size() == 0) return;                        // dto.
+        if (!MainApplication.isDisplayingMapView()) return;   // nothing to do
+        if (addressList.size() == 0) return;                  // dto.
 
         // compute bounding box
@@ -215,5 +215,5 @@
         if (bbox.getBounds() != null) {
             //  zoom to calculated bounding box
-            Main.map.mapView.zoomTo(bbox.getBounds());
+            MainApplication.getMap().mapView.zoomTo(bbox.getBounds());
         }
     }
Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/AbstractAddressEditAction.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/AbstractAddressEditAction.java	(revision 32970)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/AbstractAddressEditAction.java	(revision 33718)
@@ -170,9 +170,11 @@
             throw new RuntimeException("No command list available. Did you forget to call beginTransaction?");
         }
-        // execute the command
-        Main.main.undoRedo.add(new SequenceCommand(txName, commands));
-        commands.clear();
-        if (container != null) {
-            container.invalidate();
+        // execute the commands
+        if (!commands.isEmpty()) {
+            Main.main.undoRedo.add(new SequenceCommand(txName, commands));
+            commands.clear();
+            if (container != null) {
+                container.invalidate();
+            }
         }
     }
Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/ConvertToRelationAction.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/ConvertToRelationAction.java	(revision 32970)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/ConvertToRelationAction.java	(revision 33718)
@@ -55,5 +55,5 @@
         // Create the relation
         Relation r = new Relation();
-        commands.add(new AddCommand(r));
+        commands.add(new AddCommand(getLayerManager().getEditDataSet(), r));
         commands.add(new ChangePropertyCommand(r, TagConstants.NAME_TAG, streetNode.getName()));
         commands.add(new ChangePropertyCommand(r, TagConstants.RELATION_TYPE, TagConstants.ASSOCIATEDSTREET_RELATION_TYPE));
Index: applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/GuessAddressDataAction.java
===================================================================
--- applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/GuessAddressDataAction.java	(revision 32970)
+++ applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/GuessAddressDataAction.java	(revision 33718)
@@ -6,5 +6,5 @@
 import java.util.List;
 
-import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.plugins.fixAddresses.AddressEditContainer;
 import org.openstreetmap.josm.plugins.fixAddresses.GuessAddressRunnable;
@@ -66,5 +66,5 @@
         GuessAddressRunnable aft = new GuessAddressRunnable(nodes, tr("Guessing address values"));
         aft.addFinishListener(this);
-        Main.worker.submit(aft);
+        MainApplication.worker.submit(aft);
     }
 
