Index: /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ElevationProfilePlugin.java
===================================================================
--- /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ElevationProfilePlugin.java	(revision 33814)
+++ /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ElevationProfilePlugin.java	(revision 33815)
@@ -6,6 +6,6 @@
 import java.awt.Color;
 
-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;
@@ -35,5 +35,5 @@
 
         // TODO: Disable this view as long as it is not stable
-        MainMenu.add(Main.main.menu.imagerySubMenu, new AddElevationLayerAction(), false, 0);
+        MainMenu.add(MainApplication.getMenu().imagerySubMenu, new AddElevationLayerAction(), false, 0);
     }
 
@@ -64,5 +64,5 @@
         if (currentLayer == null) {
             currentLayer = new ElevationProfileLayer(tr("Elevation Profile"));
-            Main.getLayerManager().addLayer(currentLayer);
+            MainApplication.getLayerManager().addLayer(currentLayer);
         }
         return currentLayer;
Index: /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/actions/AddElevationLayerAction.java
===================================================================
--- /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/actions/AddElevationLayerAction.java	(revision 33814)
+++ /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/actions/AddElevationLayerAction.java	(revision 33815)
@@ -6,6 +6,6 @@
 import java.awt.event.ActionEvent;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.plugins.elevation.grid.ElevationGridLayer;
@@ -27,5 +27,5 @@
         if (currentLayer == null) {
             currentLayer = new ElevationGridLayer(tr("Elevation Grid")); // TODO: Better name
-            Main.getLayerManager().addLayer(currentLayer);
+            MainApplication.getLayerManager().addLayer(currentLayer);
         }
     }
Index: /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/grid/ElevationGridLayer.java
===================================================================
--- /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/grid/ElevationGridLayer.java	(revision 33814)
+++ /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/grid/ElevationGridLayer.java	(revision 33815)
@@ -18,5 +18,4 @@
 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoaderListener;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileSource;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -27,4 +26,5 @@
 import org.openstreetmap.josm.plugins.elevation.IVertexRenderer;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.Logging;
 
 /**
@@ -114,10 +114,7 @@
     public void tileLoadingFinished(Tile tile, boolean success) {
         try {
-            if (Main.map != null) {
-                Main.map.repaint(100);
-            }
+            invalidate();
         } catch (Exception ex) {
-            System.err.println(ex);
-            ex.printStackTrace(System.err);
+            Logging.error(ex);
         }
     }
Index: /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/DefaultElevationProfileRenderer.java
===================================================================
--- /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/DefaultElevationProfileRenderer.java	(revision 33814)
+++ /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/DefaultElevationProfileRenderer.java	(revision 33815)
@@ -19,4 +19,5 @@
 import java.util.List;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.gpx.WayPoint;
 import org.openstreetmap.josm.gui.MapView;
@@ -150,6 +151,6 @@
 
         // transform to view
-        Point pnt1 = mv.getPoint(wpt1.getEastNorth());
-        Point pnt2 = mv.getPoint(wpt2.getEastNorth());
+        Point pnt1 = mv.getPoint(wpt1.getEastNorth(Main.getProjection()));
+        Point pnt2 = mv.getPoint(wpt2.getEastNorth(Main.getProjection()));
 
         // use thick line, if possible
@@ -188,5 +189,5 @@
 
         Color c = getColorForWaypoint(profile, wpt, kind);
-        Point pnt = mv.getPoint(wpt.getEastNorth());
+        Point pnt = mv.getPoint(wpt.getEastNorth(Main.getProjection()));
 
         /* Paint full hour label */
@@ -235,5 +236,5 @@
         Color c = getColorForWaypoint(profile, wpt, kind);
         int eleH = (int) ElevationHelper.getElevation(wpt);
-        Point pnt = mv.getPoint(wpt.getEastNorth());
+        Point pnt = mv.getPoint(wpt.getEastNorth(Main.getProjection()));
 
         TriangleDir td = TriangleDir.Up;
@@ -359,5 +360,5 @@
 
         Color c = getColorForWaypoint(profile, wpt, kind);
-        Point pnt = mv.getPoint(wpt.getEastNorth());
+        Point pnt = mv.getPoint(wpt.getEastNorth(Main.getProjection()));
         drawSphere(g, Color.WHITE, c, pnt.x, pnt.y, BIG_WPT_RADIUS);
     }
Index: /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileDialog.java
===================================================================
--- /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileDialog.java	(revision 33814)
+++ /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileDialog.java	(revision 33815)
@@ -25,7 +25,7 @@
 import javax.swing.event.ListDataListener;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.SystemOfMeasurement;
 import org.openstreetmap.josm.data.gpx.GpxData;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.dialogs.ToggleDialog;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
@@ -162,9 +162,9 @@
         zoomButton.addActionListener(new ActionListener() {
             @Override
-            public void actionPerformed(ActionEvent arg0) {
+            public void actionPerformed(ActionEvent e) {
                 if (model != null) {
                     IElevationProfile profile = model.getCurrentProfile();
                     if (profile != null) {
-                        Main.map.mapView.zoomTo(profile.getBounds());
+                        MainApplication.getMap().mapView.zoomTo(profile.getBounds());
                     }
                 }
@@ -198,8 +198,8 @@
     @Override
     public void showNotify() {
-        Main.getLayerManager().addLayerChangeListener(this);
-        Main.getLayerManager().addActiveLayerChangeListener(this);
-        if (Main.isDisplayingMapView()) {
-            Layer layer = Main.getLayerManager().getActiveLayer();
+        MainApplication.getLayerManager().addLayerChangeListener(this);
+        MainApplication.getLayerManager().addActiveLayerChangeListener(this);
+        if (MainApplication.isDisplayingMapView()) {
+            Layer layer = MainApplication.getLayerManager().getActiveLayer();
             if (layer instanceof GpxLayer) {
                 setActiveLayer((GpxLayer) layer);
@@ -210,6 +210,6 @@
     @Override
     public void hideNotify() {
-        Main.getLayerManager().removeActiveLayerChangeListener(this);
-        Main.getLayerManager().removeLayerChangeListener(this);
+        MainApplication.getLayerManager().removeActiveLayerChangeListener(this);
+        MainApplication.getLayerManager().removeLayerChangeListener(this);
     }
 
@@ -353,5 +353,5 @@
     @Override
     public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) {
-        Layer newLayer = Main.getLayerManager().getActiveLayer();
+        Layer newLayer = MainApplication.getLayerManager().getActiveLayer();
         if (newLayer instanceof GpxLayer) {
             setActiveLayer((GpxLayer) newLayer);
Index: /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileLayer.java
===================================================================
--- /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileLayer.java	(revision 33814)
+++ /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileLayer.java	(revision 33815)
@@ -10,5 +10,4 @@
 import javax.swing.Icon;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.gpx.WayPoint;
@@ -62,5 +61,5 @@
         if (this.profile != profile) {
             this.profile = profile;
-            Main.map.repaint();
+            invalidate();
         }
     }
@@ -208,5 +207,5 @@
         if (selWayPoint != newWayPoint) {
             selWayPoint = newWayPoint;
-            Main.map.repaint();
+            invalidate();
         }
     }
