Index: trunk/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java	(revision 5855)
+++ trunk/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java	(revision 5856)
@@ -51,4 +51,5 @@
     private HashSet<PrimitiveId> toLoad;
     private HistoryDataSet loadedData;
+    private OsmServerHistoryReader reader = null;
 
     public HistoryLoadTask() {
@@ -159,5 +160,8 @@
     @Override
     protected void cancel() {
-        OsmApi.getOsmApi().cancel();
+        System.out.println("Cancel!");
+        //OsmApi.getOsmApi().cancel();
+        // fix #8601 : could not cancel when server is extremely slow
+        if (reader!=null) reader.cancel();
         canceled = true;
     }
@@ -191,5 +195,5 @@
                 progressMonitor.indeterminateSubTask(tr(msg,
                         Long.toString(pid.getUniqueId())));
-                OsmServerHistoryReader reader = null;
+                reader = null;
                 HistoryDataSet ds = null;
                 try {
