Index: src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeTask.java
===================================================================
--- src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeTask.java	(revision 14756)
+++ src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeTask.java	(working copy)
@@ -137,6 +137,7 @@
 
         private HistoryLoaderAndListener(Map<OsmPrimitive, Date> toLoad) {
             this.toLoad = toLoad;
+            this.setChangesetDataNeeded(false);
             add(toLoad.keySet());
             // Updating process is done after all history requests have been made
             HistoryDataSet.getInstance().addHistoryDataSetListener(this);
Index: src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java
===================================================================
--- src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java	(revision 14756)
+++ src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java	(working copy)
@@ -26,6 +26,7 @@
 import org.openstreetmap.josm.io.OsmServerHistoryReader;
 import org.openstreetmap.josm.io.OsmTransferException;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
+import org.openstreetmap.josm.tools.Logging;
 import org.xml.sax.SAXException;
 
 /**
@@ -52,6 +53,7 @@
     private final Set<PrimitiveId> toLoad = new HashSet<>();
     private HistoryDataSet loadedData;
     private OsmServerHistoryReader reader;
+    private boolean getChangesetData = true;
 
     /**
      * Constructs a new {@code HistoryLoadTask}.
@@ -163,8 +165,11 @@
     @Override
     protected void realRun() throws SAXException, IOException, OsmTransferException {
         loadedData = new HistoryDataSet();
+        int ticks = toLoad.size();
+        if (getChangesetData)
+            ticks *= 2;
         try {
-            progressMonitor.setTicksCount(2 * toLoad.size());
+            progressMonitor.setTicksCount(ticks);
             for (PrimitiveId pid: toLoad) {
                 if (canceled) {
                     break;
@@ -183,7 +188,11 @@
         HistoryDataSet ds;
         try {
             reader = new OsmServerHistoryReader(pid.getType(), pid.getUniqueId());
-            ds = loadHistory(reader, progressMonitor);
+            if (getChangesetData) {
+                ds = loadHistory(reader, progressMonitor);
+            } else {
+                ds = reader.parseHistory(progressMonitor.createSubTaskMonitor(1, false));
+            }
         } catch (OsmTransferException e) {
             if (canceled)
                 return;
@@ -195,6 +204,7 @@
     protected static HistoryDataSet loadHistory(OsmServerHistoryReader reader, ProgressMonitor progressMonitor) throws OsmTransferException {
         HistoryDataSet ds = reader.parseHistory(progressMonitor.createSubTaskMonitor(1, false));
         if (ds != null) {
+            Logging.warn("retrieving CS data!!!");
             // load corresponding changesets (mostly for changeset comment)
             OsmServerChangesetReader changesetReader = new OsmServerChangesetReader();
             List<Long> changesetIds = new ArrayList<>(ds.getChangesetIds());
@@ -240,4 +250,12 @@
     public Exception getLastException() {
         return lastException;
     }
+
+    /**
+     * Determine if changeset information is needed. By default it is retrieved.
+     * @param b false means don't retrieve changeset data.
+     */
+    public void setChangesetDataNeeded(boolean b) {
+        getChangesetData = b;
+    }
 }
Index: src/org/openstreetmap/josm/io/OsmServerHistoryReader.java
===================================================================
--- src/org/openstreetmap/josm/io/OsmServerHistoryReader.java	(revision 14756)
+++ src/org/openstreetmap/josm/io/OsmServerHistoryReader.java	(working copy)
@@ -59,8 +59,8 @@
     public HistoryDataSet parseHistory(ProgressMonitor progressMonitor) throws OsmTransferException {
         progressMonitor.beginTask("");
         try {
-            progressMonitor.indeterminateSubTask(tr("Contacting OSM Server..."));
             final String urlStr = primitiveType.getAPIName() + '/' + id + "/history";
+            progressMonitor.indeterminateSubTask(tr("Contacting OSM Server for {0}", urlStr));
 
             try (InputStream in = getInputStream(urlStr, progressMonitor.createSubTaskMonitor(1, true))) {
                 if (in == null)
