Index: trunk/src/org/openstreetmap/josm/gui/download/OSMDownloadSource.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/OSMDownloadSource.java	(revision 18727)
+++ trunk/src/org/openstreetmap/josm/gui/download/OSMDownloadSource.java	(revision 18728)
@@ -88,5 +88,5 @@
                 MainApplication.worker.submit(new PostDownloadHandler(task, future));
                 if (zoom) {
-                    tasks.add(new Pair<AbstractDownloadTask<?>, Future<?>>(task, future));
+                    tasks.add(new Pair<>(task, future));
                 }
             } catch (InstantiationException | IllegalAccessException | IllegalArgumentException
@@ -212,6 +212,8 @@
 
             // size check depends on selected data source
-            checkboxChangeListener = e ->
-                    dialog.getSelectedDownloadArea().ifPresent(this::updateSizeCheck);
+            checkboxChangeListener = e -> {
+                rememberSettings();
+                dialog.getSelectedDownloadArea().ifPresent(OSMDownloadSourcePanel.this::boundingBoxChanged);
+            };
 
             downloadSourcesPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
@@ -281,5 +283,5 @@
             }
 
-            final Boolean slippyMapShowsDownloadBounds = settings.getSlippyMapBounds()
+            final boolean slippyMapShowsDownloadBounds = settings.getSlippyMapBounds()
                     .map(b -> b.intersects(settings.getDownloadBounds().get()))
                     .orElse(true);
@@ -325,13 +327,4 @@
         @Override
         public void boundingBoxChanged(Bounds bbox) {
-            updateSizeCheck(bbox);
-        }
-
-        @Override
-        public String getSimpleName() {
-            return SIMPLE_NAME;
-        }
-
-        private void updateSizeCheck(Bounds bbox) {
             if (bbox == null) {
                 sizeCheck.setText(tr("No area selected yet"));
@@ -341,5 +334,11 @@
 
             displaySizeCheckResult(DOWNLOAD_SOURCES.stream()
+                    .filter(IDownloadSourceType::isEnabled)
                     .anyMatch(type -> type.isDownloadAreaTooLarge(bbox)));
+        }
+
+        @Override
+        public String getSimpleName() {
+            return SIMPLE_NAME;
         }
 
@@ -355,29 +354,4 @@
     }
 
-    /**
-     * Encapsulates data that is required to download from the OSM server.
-     */
-    static class OSMDownloadData {
-
-        private final List<IDownloadSourceType> downloadPossibilities;
-
-        /**
-         * Constructs a new {@code OSMDownloadData}.
-         * @param downloadPossibilities A list of DataDownloadTypes (instantiated, with
-         *                              options set)
-         */
-        OSMDownloadData(List<IDownloadSourceType> downloadPossibilities) {
-            this.downloadPossibilities = downloadPossibilities;
-        }
-
-        /**
-         * Returns the download possibilities.
-         * @return A list of DataDownloadTypes (instantiated, with options set)
-         */
-        public List<IDownloadSourceType> getDownloadPossibilities() {
-            return downloadPossibilities;
-        }
-    }
-
     private static class OsmDataDownloadType implements IDownloadSourceType {
         static final BooleanProperty IS_ENABLED = new BooleanProperty("download.osm.data", true);
@@ -415,5 +389,5 @@
         public boolean isDownloadAreaTooLarge(Bounds bound) {
             // see max_request_area in
-            // https://github.com/openstreetmap/openstreetmap-website/blob/master/config/example.application.yml
+            // https://github.com/openstreetmap/openstreetmap-website/blob/master/config/settings.yml
             return bound.getArea() > Config.getPref().getDouble("osm-server.max-request-area", 0.25);
         }
@@ -493,5 +467,5 @@
         public boolean isDownloadAreaTooLarge(Bounds bound) {
             // see max_note_request_area in
-            // https://github.com/openstreetmap/openstreetmap-website/blob/master/config/example.application.yml
+            // https://github.com/openstreetmap/openstreetmap-website/blob/master/config/settings.yml
             return bound.getArea() > Config.getPref().getDouble("osm-server.max-request-area-notes", 25);
         }
