Index: src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java	(revision 18934)
+++ src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java	(working copy)
@@ -122,7 +122,7 @@
                 }
                 AbstractModifiableLayer odl = (AbstractModifiableLayer) l;
                 if (odl.isModified() &&
-                        ((!odl.isSavable() && !odl.isUploadable()) ||
+                        (odl.isSavable() || odl.isUploadable() ||
                                 odl.requiresSaveToFile() ||
                                 odl.requiresUploadToServer())) {
                     layersWithUnsavedChanges.add(odl);
Index: src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 18934)
+++ src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(working copy)
@@ -743,12 +743,11 @@
 
         mapModeListener = (oldMapMode, newMapMode) -> {
             MapView mapView = MainApplication.getMap().mapView;
+            mapView.removeMouseListener(mouseAdapter);
+            mapView.removeMouseMotionListener(mouseMotionAdapter);
             if (newMapMode == null || isSupportedMapMode(newMapMode)) {
                 mapView.addMouseListener(mouseAdapter);
                 mapView.addMouseMotionListener(mouseMotionAdapter);
-            } else {
-                mapView.removeMouseListener(mouseAdapter);
-                mapView.removeMouseMotionListener(mouseMotionAdapter);
             }
         };
 
