Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeTask.java	(revision 14762)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeTask.java	(revision 14763)
@@ -138,4 +138,5 @@
         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
Index: trunk/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java	(revision 14762)
+++ trunk/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java	(revision 14763)
@@ -27,4 +27,5 @@
 import org.openstreetmap.josm.io.OsmTransferException;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
+import org.openstreetmap.josm.tools.Logging;
 import org.xml.sax.SAXException;
 
@@ -53,4 +54,5 @@
     private HistoryDataSet loadedData;
     private OsmServerHistoryReader reader;
+    private boolean getChangesetData = true;
 
     /**
@@ -164,6 +166,9 @@
     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) {
@@ -184,5 +189,9 @@
         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)
@@ -241,3 +250,11 @@
         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: trunk/src/org/openstreetmap/josm/io/OsmServerHistoryReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmServerHistoryReader.java	(revision 14762)
+++ trunk/src/org/openstreetmap/josm/io/OsmServerHistoryReader.java	(revision 14763)
@@ -60,6 +60,6 @@
         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))) {
