Index: src/org/openstreetmap/josm/actions/SaveAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/SaveAction.java	(revision 19099)
+++ src/org/openstreetmap/josm/actions/SaveAction.java	(working copy)
@@ -91,10 +91,8 @@
     @Override
     protected void updateEnabledState() {
         Layer activeLayer = getLayerManager().getActiveLayer();
-        boolean en = activeLayer != null
-                && activeLayer.isSavable() && !(activeLayer.getAssociatedFile() != null
-                && activeLayer instanceof SaveToFile && !((SaveToFile) activeLayer).requiresSaveToFile());
-        GuiHelper.runInEDT(() -> setEnabled(en));
+		boolean en = activeLayer != null && activeLayer.isSavable();
+		GuiHelper.runInEDT(() -> setEnabled(en));
     }
 
     @Override
Index: src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 19099)
+++ src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(working copy)
@@ -1195,6 +1195,7 @@
         if (data.getUploadPolicy() != UploadPolicy.BLOCKED &&
                 (uploadDiscouraged ^ isUploadDiscouraged())) {
             data.setUploadPolicy(uploadDiscouraged ? UploadPolicy.DISCOURAGED : UploadPolicy.NORMAL);
+            setRequiresSaveToFile(true);
             for (LayerStateChangeListener l : layerStateChangeListeners) {
                 l.uploadDiscouragedChanged(this, uploadDiscouraged);
             }
