Index: trunk/src/org/openstreetmap/josm/actions/ImageryAdjustAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/ImageryAdjustAction.java	(revision 13545)
+++ trunk/src/org/openstreetmap/josm/actions/ImageryAdjustAction.java	(revision 13546)
@@ -53,4 +53,5 @@
     private MapMode oldMapMode;
     private boolean exitingMode;
+    private boolean restoreOldMode;
 
     /**
@@ -113,4 +114,16 @@
     @Override
     public void exitMode() {
+        // do not restore old mode here - this is called when the new mode is already known.
+        restoreOldMode = false;
+        doExitMode();
+    }
+
+    private void exitModeAndRestoreOldMode() {
+        restoreOldMode = true;
+        doExitMode();
+        restoreOldMode = false;
+    }
+
+    private void doExitMode() {
         exitingMode = true;
         super.exitMode();
@@ -120,5 +133,4 @@
             }
             hideOffsetDialog();
-            // do not restore old mode here - this is called when the new mode is already known.
         }
         removeListeners();
@@ -352,8 +364,10 @@
                 return;
             if (oldMapMode != null) {
-                map.selectMapMode(oldMapMode);
+                if (restoreOldMode) {
+                    map.selectMapMode(oldMapMode);
+                }
                 oldMapMode = null;
             } else if (!exitingMode && !map.selectSelectTool(false)) {
-                exitMode();
+                exitModeAndRestoreOldMode();
                 map.mapMode = null;
             }
