Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTask.java	(revision 8215)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTask.java	(revision 8216)
@@ -3,4 +3,5 @@
 
 import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
 
 import java.io.IOException;
@@ -8,4 +9,6 @@
 import java.util.List;
 import java.util.concurrent.Future;
+
+import javax.swing.JOptionPane;
 
 import org.openstreetmap.josm.Main;
@@ -141,4 +144,13 @@
             try {
                 notesData = reader.parseNotes(null, null, subMonitor);
+            } catch (BoundingBoxDownloader.MoreNotesException e) {
+                JOptionPane.showMessageDialog(Main.parent, "<html>"
+                                + trn("{0} note has been downloaded.", "{0} notes have been downloaded.", e.limit, e.limit)
+                                + "<br>"
+                                + tr("Since the download limit was {0}, there might be more notes to download.", e.limit)
+                                + "<br>"
+                                + tr("Request a smaller area to make sure that all notes are being downloaded.")
+                                + "</html>",
+                        tr("More notes to download"), JOptionPane.INFORMATION_MESSAGE);
             } catch (Exception e) {
                 if (isCanceled())
Index: trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java	(revision 8215)
+++ trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java	(revision 8216)
@@ -162,5 +162,5 @@
 
     @Override
-    public List<Note> parseNotes(Integer noteLimit, Integer daysClosed, ProgressMonitor progressMonitor) throws OsmTransferException {
+    public List<Note> parseNotes(Integer noteLimit, Integer daysClosed, ProgressMonitor progressMonitor) throws OsmTransferException, MoreNotesException {
         progressMonitor.beginTask("Downloading notes");
         noteLimit = checkNoteLimit(noteLimit);
@@ -180,5 +180,9 @@
             InputStream is = getInputStream(url, progressMonitor.createSubTaskMonitor(1, false));
             NoteReader reader = new NoteReader(is);
-            return reader.parse();
+            final List<Note> notes = reader.parse();
+            if (notes.size() == noteLimit) {
+                throw new MoreNotesException(noteLimit);
+            }
+            return notes;
         } catch (IOException e) {
             throw new OsmTransferException(e);
@@ -187,4 +191,18 @@
         } finally {
             progressMonitor.finishTask();
+        }
+    }
+
+    /**
+     * Indicates that the number of fetched notes equals the specified limit. Thus there might be more notes to download.
+     */
+    public static class MoreNotesException extends RuntimeException{
+        /**
+         * The download limit sent to the server.
+         */
+        public final int limit;
+
+        public MoreNotesException(int limit) {
+            this.limit = limit;
         }
     }
@@ -194,7 +212,8 @@
             limit = Main.pref.getInteger("osm.notes.downloadLimit", 1000);
         }
-        if (limit > 10000) {
-            Main.error("Requested note limit is over API hard limit of 10000. Reducing to 10000.");
-            limit = 10000;
+        if (limit > 50000) {
+            // see max_number_of_nodes in https://github.com/openstreetmap/openstreetmap-website/blob/master/config/example.application.yml
+            Main.error("Requested note limit is over API hard limit of 50000. Reducing to 50000.");
+            limit = 50000;
         }
         if (limit < 1) {
@@ -202,5 +221,4 @@
             limit = 1;
         }
-        Main.debug("returning note limit: " + limit);
         return limit;
     }
@@ -214,5 +232,4 @@
             days = -1;
         }
-        Main.debug("returning days closed: " + days);
         return days;
     }
