Index: /applications/editors/josm/plugins/photoadjust/src/org/openstreetmap/josm/plugins/photoadjust/PhotoAdjustMapMode.java
===================================================================
--- /applications/editors/josm/plugins/photoadjust/src/org/openstreetmap/josm/plugins/photoadjust/PhotoAdjustMapMode.java	(revision 32450)
+++ /applications/editors/josm/plugins/photoadjust/src/org/openstreetmap/josm/plugins/photoadjust/PhotoAdjustMapMode.java	(revision 32451)
@@ -16,7 +16,11 @@
 import org.openstreetmap.josm.gui.IconToggleButton;
 import org.openstreetmap.josm.gui.MapFrame;
-import org.openstreetmap.josm.gui.MapView;
-import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
 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.gui.layer.geoimage.GeoImageLayer;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -29,5 +33,5 @@
  * handles it.
  */
-public class PhotoAdjustMapMode extends MapMode implements LayerChangeListener {
+public class PhotoAdjustMapMode extends MapMode implements LayerChangeListener, ActiveLayerChangeListener {
 
     /** True if this map mode waits for mouse events. */
@@ -35,8 +39,8 @@
     /** True if the map mode button is selected and active. */
     private boolean modeSelected = false;
-    private MouseAdapter mouseAdapter = null;
-    private MouseMotionAdapter mouseMotionAdapter = null;
-    private IconToggleButton mmButton = null;
-    private PhotoAdjustWorker worker = null;
+    private MouseAdapter mouseAdapter;
+    private MouseMotionAdapter mouseMotionAdapter;
+    private IconToggleButton mmButton;
+    private PhotoAdjustWorker worker;
 
     public PhotoAdjustMapMode(MapFrame mapFrame, PhotoAdjustWorker worker) {
@@ -51,5 +55,6 @@
         initAdapters();
         this.worker = worker;
-        MapView.addLayerChangeListener(this);
+        Main.getLayerManager().addLayerChangeListener(this);
+        Main.getLayerManager().addActiveLayerChangeListener(this);
     }
 
@@ -131,6 +136,5 @@
         modeSelected = true;
         // Activate the mode only if the current layer is not a
-        // GeoImageLayer.  GeoImageLayer's are handled by the plug-in
-        // directly.
+        // GeoImageLayer.  GeoImageLayer's are handled by the plug-in directly.
         if (! (Main.getLayerManager().getActiveLayer() instanceof GeoImageLayer)) {
             activateMode();
@@ -141,18 +145,16 @@
     public void exitMode() {
         super.exitMode();
-        MapView.removeLayerChangeListener(this);
+        Main.getLayerManager().removeActiveLayerChangeListener(this);
+        Main.getLayerManager().removeLayerChangeListener(this);
         deactivateMode();
         modeSelected = false;
     }
 
-    // LayerChangeListener: activeLayerChange/layerAdded/layerRemoved
-    @Override
-    public void activeLayerChange(Layer oldLayer, Layer newLayer) {
-        // The main part of the plugin takes care of all operations if
-        // a GeoImageLayer is active.
-        if (newLayer instanceof GeoImageLayer) {
+    @Override
+    public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) {
+        // The main part of the plugin takes care of all operations if a GeoImageLayer is active.
+        if (Main.getLayerManager().getActiveLayer() instanceof GeoImageLayer) {
             deactivateMode();
-        }
-        else {
+        } else {
             activateMode();
         }
@@ -160,5 +162,5 @@
 
     @Override
-    public void layerAdded(Layer newLayer) {
+    public void layerAdded(LayerAddEvent e) {
         if (modeActive) updateStatusLine();
         updateButtonState();
@@ -166,9 +168,12 @@
 
     @Override
-    public void layerRemoved(Layer oldLayer) {
+    public void layerRemoving(LayerRemoveEvent e) {
         if (modeActive) updateStatusLine();
         updateButtonState();
     }
-    // End LayerChangeListener
+
+    @Override
+    public void layerOrderChanged(LayerOrderChangeEvent e) {
+    }
 
     /**
@@ -228,5 +233,6 @@
     public void destroy() {
         super.destroy();
-        MapView.removeLayerChangeListener(this);
+        Main.getLayerManager().removeLayerChangeListener(this);
+        Main.getLayerManager().removeActiveLayerChangeListener(this);
     }
 }
Index: /applications/editors/josm/plugins/photoadjust/src/org/openstreetmap/josm/plugins/photoadjust/PhotoAdjustPlugin.java
===================================================================
--- /applications/editors/josm/plugins/photoadjust/src/org/openstreetmap/josm/plugins/photoadjust/PhotoAdjustPlugin.java	(revision 32450)
+++ /applications/editors/josm/plugins/photoadjust/src/org/openstreetmap/josm/plugins/photoadjust/PhotoAdjustPlugin.java	(revision 32451)
@@ -8,11 +8,11 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
+import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
+import org.openstreetmap.josm.gui.layer.geoimage.GeoImageLayer;
 import org.openstreetmap.josm.plugins.Plugin;
 import org.openstreetmap.josm.plugins.PluginInformation;
-import org.openstreetmap.josm.gui.MapFrame;
-import org.openstreetmap.josm.gui.MapView;
-import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
-import org.openstreetmap.josm.gui.layer.Layer;
-import org.openstreetmap.josm.gui.layer.geoimage.GeoImageLayer;
 
 /**
@@ -21,5 +21,5 @@
  * coordinates (untagged photos) on the map.
  */
-public class PhotoAdjustPlugin extends Plugin implements LayerChangeListener {
+public class PhotoAdjustPlugin extends Plugin implements ActiveLayerChangeListener {
   
     private GeoImageLayer imageLayer = null;
@@ -77,17 +77,17 @@
     public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
         if (oldFrame == null && newFrame != null) {
-            MapView.addLayerChangeListener(this, true);
+            Main.getLayerManager().addAndFireActiveLayerChangeListener(this);
             PhotoAdjustMapMode adjustMode = new PhotoAdjustMapMode(newFrame, worker);
             adjustMode.installMapMode(newFrame);
-        } 
-        else {
-            MapView.removeLayerChangeListener(this);
+        } else {
+            Main.getLayerManager().removeActiveLayerChangeListener(this);
         }
     }
 
-    // LayerChangeListener: activeLayerChange/layerAdded/layerRemoved
     @Override
-    public void activeLayerChange(Layer oldLayer, Layer newLayer) {
+    public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) {
         worker.reset();
+        Layer oldLayer = e.getPreviousActiveLayer();
+        Layer newLayer = Main.getLayerManager().getActiveLayer();
         if ( oldLayer instanceof GeoImageLayer
              && newLayer instanceof GeoImageLayer) {
@@ -107,9 +107,3 @@
         }
     }
-
-    @Override
-    public void layerAdded(Layer newLayer) {}
-
-    @Override
-    public void layerRemoved(Layer oldLayer) {}
 }
Index: /applications/editors/josm/plugins/photoadjust/src/org/openstreetmap/josm/plugins/photoadjust/UntaggedGeoImageLayerAction.java
===================================================================
--- /applications/editors/josm/plugins/photoadjust/src/org/openstreetmap/josm/plugins/photoadjust/UntaggedGeoImageLayerAction.java	(revision 32450)
+++ /applications/editors/josm/plugins/photoadjust/src/org/openstreetmap/josm/plugins/photoadjust/UntaggedGeoImageLayerAction.java	(revision 32451)
@@ -53,5 +53,5 @@
                 }
             }
-            Main.main.addLayer(new GeoImageLayer(untagged, layer.getGpxLayer(),
+            Main.getLayerManager().addLayer(new GeoImageLayer(untagged, layer.getGpxLayer(),
                                                  tr("Untagged Images"),
                                                  layer.isUseThumbs()));
