Index: /trunk/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java	(revision 18940)
+++ /trunk/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java	(revision 18941)
@@ -123,5 +123,5 @@
                 AbstractModifiableLayer odl = (AbstractModifiableLayer) l;
                 if (odl.isModified() &&
-                        ((!odl.isSavable() && !odl.isUploadable()) ||
+                        (odl.isSavable() || odl.isUploadable() ||
                                 odl.requiresSaveToFile() ||
                                 odl.requiresUploadToServer())) {
Index: /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 18940)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 18941)
@@ -744,10 +744,9 @@
         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);
             }
         };
