Index: applications/editors/josm/plugins/editgpx/build.xml
===================================================================
--- applications/editors/josm/plugins/editgpx/build.xml	(revision 33781)
+++ applications/editors/josm/plugins/editgpx/build.xml	(revision 33782)
@@ -4,5 +4,5 @@
     <property name="commit.message" value="Changed constructor signature of plugin main class"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="10580"/>
+    <property name="plugin.main.version" value="12636"/>
     
     <!-- Configure these properties (replace "..." accordingly).
Index: applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxLayer.java
===================================================================
--- applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxLayer.java	(revision 33781)
+++ applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxLayer.java	(revision 33782)
@@ -21,4 +21,6 @@
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
@@ -103,9 +105,10 @@
         //don't iterate through dataSet whiling making changes
         synchronized(layerImport.importing) {
+            Projection projection = Main.getProjection();
             for (EditGpxTrack track: data.getTracks()) {
                 for (EditGpxTrackSegment segment: track.getSegments()) {
                     for (EditGpxWayPoint wayPoint: segment.getWayPoints()) {
                         if (!wayPoint.isDeleted()) {
-                            Point pnt = mv.getPoint(wayPoint.getCoor().getEastNorth());
+                            Point pnt = mv.getPoint(wayPoint.getCoor().getEastNorth(projection));
                             g.drawOval(pnt.x - 2, pnt.y - 2, 4, 4);
                         }
@@ -147,9 +150,9 @@
         @Override
         public void actionPerformed(ActionEvent e) {
-            if (Main.map.mapMode instanceof EditGpxMode && !Main.map.selectSelectTool(false)) {
-                Main.map.selectZoomTool(false); // Select tool might not be support of active layer, zoom is always supported
+            if (MainApplication.getMap().mapMode instanceof EditGpxMode && !MainApplication.getMap().selectSelectTool(false)) {
+                MainApplication.getMap().selectZoomTool(false); // Select tool might not be support of active layer, zoom is always supported
             }
-            Main.getLayerManager().addLayer(new GpxLayer(toGpxData(false), tr("Converted from: {0}", getName())));
-            Main.getLayerManager().removeLayer(EditGpxLayer.this);
+            MainApplication.getLayerManager().addLayer(new GpxLayer(toGpxData(false), tr("Converted from: {0}", getName())));
+            MainApplication.getLayerManager().removeLayer(EditGpxLayer.this);
         }
     }
@@ -167,9 +170,9 @@
         @Override
         public void actionPerformed(ActionEvent e) {
-            if (Main.map.mapMode instanceof EditGpxMode && !Main.map.selectSelectTool(false)) {
-                Main.map.selectZoomTool(false); // Select tool might not be support of active layer, zoom is always supported
+            if (MainApplication.getMap().mapMode instanceof EditGpxMode && !MainApplication.getMap().selectSelectTool(false)) {
+                MainApplication.getMap().selectZoomTool(false); // Select tool might not be support of active layer, zoom is always supported
             }
-            Main.getLayerManager().addLayer(new GpxLayer(toGpxData(true), tr("Converted from: {0}", getName())));
-            Main.getLayerManager().removeLayer(EditGpxLayer.this);
+            MainApplication.getLayerManager().addLayer(new GpxLayer(toGpxData(true), tr("Converted from: {0}", getName())));
+            MainApplication.getLayerManager().removeLayer(EditGpxLayer.this);
         }
     }
Index: applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxMode.java
===================================================================
--- applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxMode.java	(revision 33781)
+++ applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxMode.java	(revision 33782)
@@ -17,4 +17,6 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.mapmode.MapMode;
+import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
@@ -41,5 +43,5 @@
      */
     public EditGpxMode(MapFrame mapFrame) {
-        super("editgpx", "editgpx_mode.png", tr("edit gpx tracks"), Main.map, Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
+        super("editgpx", "editgpx_mode.png", tr("edit gpx tracks"), Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
         this.mapFrame = mapFrame;
     }
@@ -48,7 +50,7 @@
     public void enterMode() {
         super.enterMode();
-        Main.map.mapView.addMouseListener(this);
-        Main.map.mapView.addMouseMotionListener(this);
-        Main.map.mapView.getLayerManager().addLayerChangeListener(this);
+        MainApplication.getMap().mapView.addMouseListener(this);
+        MainApplication.getMap().mapView.addMouseMotionListener(this);
+        MainApplication.getMap().mapView.getLayerManager().addLayerChangeListener(this);
         updateLayer();
     }
@@ -57,7 +59,7 @@
     public void exitMode() {
         super.exitMode();
-        Main.map.mapView.removeMouseListener(this);
-        Main.map.mapView.removeMouseMotionListener(this);
-        Main.map.mapView.getLayerManager().removeLayerChangeListener(this);
+        MainApplication.getMap().mapView.removeMouseListener(this);
+        MainApplication.getMap().mapView.removeMouseMotionListener(this);
+        MainApplication.getMap().mapView.getLayerManager().removeLayerChangeListener(this);
     }
 
@@ -87,8 +89,9 @@
         //go through nodes and mark the ones in the selection rect as deleted
         if (currentEditLayer != null) {
+            Projection projection = Main.getProjection();
             for (EditGpxTrack track: currentEditLayer.data.getTracks()) {
                 for (EditGpxTrackSegment segment: track.getSegments()) {
                     for (EditGpxWayPoint wayPoint: segment.getWayPoints()) {
-                        Point p = Main.map.mapView.getPoint(wayPoint.getCoor().getEastNorth());
+                        Point p = MainApplication.getMap().mapView.getPoint(wayPoint.getCoor().getEastNorth(projection));
                         if (r.contains(p)) {
                             wayPoint.setDeleted(true);
@@ -99,5 +102,5 @@
         }
         oldRect = null;
-        Main.map.mapView.repaint();
+        MainApplication.getMap().mapView.repaint();
     }
 
@@ -160,13 +163,13 @@
     private void updateLayer() {
 
-        List<EditGpxLayer> layers = Main.map.mapView.getLayerManager().getLayersOfType(EditGpxLayer.class);
+        List<EditGpxLayer> layers = MainApplication.getMap().mapView.getLayerManager().getLayersOfType(EditGpxLayer.class);
         currentEditLayer = layers.isEmpty() ? null : layers.get(0);
 
         if(currentEditLayer == null) {
             currentEditLayer = new EditGpxLayer(new EditGpxData());
-            Main.getLayerManager().addLayer(currentEditLayer);
+            MainApplication.getLayerManager().addLayer(currentEditLayer);
             currentEditLayer.initializeImport();
         }
-        Main.map.mapView.repaint();
+        MainApplication.getMap().mapView.repaint();
     }
 
@@ -180,9 +183,9 @@
         if (e.getRemovedLayer() instanceof EditGpxLayer) {
             currentEditLayer = null;
-            if (Main.map.mapMode instanceof EditGpxMode) {
-                if (Main.map.mapView.getLayerManager().getActiveLayer() instanceof OsmDataLayer) {
-                    Main.map.selectSelectTool(false);
+            if (MainApplication.getMap().mapMode instanceof EditGpxMode) {
+                if (MainApplication.getMap().mapView.getLayerManager().getActiveLayer() instanceof OsmDataLayer) {
+                    MainApplication.getMap().selectSelectTool(false);
                 } else {
-                    Main.map.selectZoomTool(false);
+                    MainApplication.getMap().selectZoomTool(false);
                 }
             }
Index: applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxPlugin.java
===================================================================
--- applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxPlugin.java	(revision 33781)
+++ applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/EditGpxPlugin.java	(revision 33782)
@@ -6,6 +6,6 @@
 import javax.swing.ImageIcon;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.IconToggleButton;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.plugins.Plugin;
@@ -40,6 +40,6 @@
         if (newFrame != null) {
             EditGpxMode mode = new EditGpxMode(newFrame);
-            if (Main.map != null)
-                Main.map.addMapMode(new IconToggleButton(mode));
+            if (MainApplication.getMap() != null)
+                MainApplication.getMap().addMapMode(new IconToggleButton(mode));
         }
     }
Index: applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/GPXLayerImportAction.java
===================================================================
--- applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/GPXLayerImportAction.java	(revision 33781)
+++ applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/GPXLayerImportAction.java	(revision 33782)
@@ -24,4 +24,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
@@ -54,5 +55,5 @@
         int layerCnt = 0;
 
-        for (Layer l : Main.map.mapView.getLayerManager().getLayers()){
+        for (Layer l : MainApplication.getMap().mapView.getLayerManager().getLayers()){
             if (l instanceof GpxLayer){
                 dModel.addElement((GpxLayer) l);
@@ -103,5 +104,5 @@
                 }
             }
-            Main.map.mapView.repaint();
+            MainApplication.getMap().mapView.repaint();
 
         } else {
Index: applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/data/EditGpxWayPoint.java
===================================================================
--- applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/data/EditGpxWayPoint.java	(revision 33781)
+++ applications/editors/josm/plugins/editgpx/src/org/openstreetmap/josm/plugins/editgpx/data/EditGpxWayPoint.java	(revision 33782)
@@ -45,4 +45,5 @@
     }
 
+    @Override
     public int compareTo(EditGpxWayPoint o) {
         return Double.compare(getTime(), o.getTime());
