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 32442)
+++ /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/ElevationProfilePlugin.java	(revision 32443)
@@ -65,5 +65,5 @@
         if(currentLayer == null){
             currentLayer = new ElevationProfileLayer(tr("Elevation Profile"));
-            Main.main.addLayer(currentLayer);
+            Main.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 32442)
+++ /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/actions/AddElevationLayerAction.java	(revision 32443)
@@ -14,5 +14,5 @@
 
     /**
-     * 
+     *
      */
     private static final long serialVersionUID = -745642875640041385L;
@@ -27,5 +27,5 @@
         if (currentLayer == null) {
             currentLayer = new ElevationGridLayer(tr("Elevation Grid")); // TODO: Better name
-            Main.main.addLayer(currentLayer);
+            Main.getLayerManager().addLayer(currentLayer);
         }
     }
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 32442)
+++ /applications/editors/josm/plugins/ElevationProfile/src/org/openstreetmap/josm/plugins/elevation/gui/ElevationProfileDialog.java	(revision 32443)
@@ -28,9 +28,13 @@
 import org.openstreetmap.josm.data.SystemOfMeasurement;
 import org.openstreetmap.josm.data.gpx.GpxData;
-import org.openstreetmap.josm.gui.MapView;
-import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
 import org.openstreetmap.josm.gui.dialogs.ToggleDialog;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent;
+import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
+import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
 import org.openstreetmap.josm.plugins.elevation.ElevationHelper;
 import org.openstreetmap.josm.plugins.elevation.IElevationModel;
@@ -45,5 +49,5 @@
  * connection between layer and elevation profile.
  */
-public class ElevationProfileDialog extends ToggleDialog implements LayerChangeListener, ComponentListener {
+public class ElevationProfileDialog extends ToggleDialog implements LayerChangeListener, ActiveLayerChangeListener, ComponentListener {
 
     private static final String EMPTY_DATA_STRING = "-";
@@ -194,5 +198,6 @@
     @Override
     public void showNotify() {
-        MapView.addLayerChangeListener(this);
+        Main.getLayerManager().addLayerChangeListener(this);
+        Main.getLayerManager().addActiveLayerChangeListener(this);
         if (Main.isDisplayingMapView()) {
             Layer layer = Main.getLayerManager().getActiveLayer();
@@ -205,5 +210,6 @@
     @Override
     public void hideNotify() {
-        MapView.removeLayerChangeListener(this);
+        Main.getLayerManager().removeActiveLayerChangeListener(this);
+        Main.getLayerManager().removeLayerChangeListener(this);
     }
 
@@ -348,5 +354,6 @@
 
     @Override
-    public void activeLayerChange(Layer oldLayer, Layer newLayer) {
+    public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) {
+        Layer newLayer = Main.getLayerManager().getActiveLayer();
         if (newLayer instanceof GpxLayer) {
             setActiveLayer((GpxLayer) newLayer);
@@ -366,11 +373,11 @@
             }
 
-            ElevationModel em = layerMap.get(newLayer);
-            setModel(em);
-        }
-    }
-
-    @Override
-    public void layerAdded(Layer newLayer) {
+            setModel(layerMap.get(newLayer));
+        }
+    }
+
+    @Override
+    public void layerAdded(LayerAddEvent e) {
+        Layer newLayer = e.getAddedLayer();
         if (newLayer instanceof GpxLayer) {
             GpxLayer gpxLayer = (GpxLayer) newLayer;
@@ -380,5 +387,6 @@
 
     @Override
-    public void layerRemoved(Layer oldLayer) {
+    public void layerRemoving(LayerRemoveEvent e) {
+        Layer oldLayer = e.getRemovedLayer();
         if (layerMap.containsKey(oldLayer)) {
             layerMap.remove(oldLayer);
@@ -394,4 +402,8 @@
 
     @Override
+    public void layerOrderChanged(LayerOrderChangeEvent e) {
+    }
+
+    @Override
     public void componentHidden(ComponentEvent e) {
     }
