Index: trunk/src/org/openstreetmap/josm/actions/ImageryAdjustAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/ImageryAdjustAction.java	(revision 13268)
+++ trunk/src/org/openstreetmap/josm/actions/ImageryAdjustAction.java	(revision 13269)
@@ -15,6 +15,4 @@
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
 import java.util.Formatter;
 import java.util.Locale;
@@ -226,5 +224,5 @@
                     tr("Adjust imagery offset"),
                     new String[] {tr("OK"), tr("Cancel")},
-                    false);
+                    false, false); // Do not dispose on close, so HIDE_ON_CLOSE remains the default behaviour and setVisible is called
             setButtonIcons("ok", "cancel");
             contentInsets = new Insets(10, 15, 5, 15);
@@ -243,5 +241,4 @@
             setContent(pnl);
             setupDialog();
-            addWindowListener(new WindowEventHandler());
             setRememberWindowGeometry(getClass().getName() + ".geometry", WindowGeometry.centerInWindow(Main.parent, getSize()));
         }
@@ -275,7 +272,5 @@
             }
             updateOffsetIntl();
-            if (MainApplication.isDisplayingMapView()) {
-                MainApplication.getMap().repaint();
-            }
+            layer.invalidate();
         }
 
@@ -323,5 +318,4 @@
             }
             super.buttonAction(buttonIndex, evt);
-            restoreMapModeState();
         }
 
@@ -340,4 +334,5 @@
             }
             MainApplication.getMenu().imageryMenu.refreshOffsetMenu();
+            restoreMapModeState();
         }
 
@@ -349,14 +344,7 @@
                 map.selectMapMode(oldMapMode);
                 oldMapMode = null;
-            } else {
-                map.selectSelectTool(false);
-            }
-        }
-
-        class WindowEventHandler extends WindowAdapter {
-            @Override
-            public void windowClosing(WindowEvent e) {
-                setVisible(false);
-                restoreMapModeState();
+            } else if (!map.selectSelectTool(false)) {
+                exitMode();
+                map.mapMode = null;
             }
         }
