Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java	(revision 16460)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java	(revision 16461)
@@ -42,6 +42,4 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.PrimitiveId;
-import org.openstreetmap.josm.data.osm.history.History;
-import org.openstreetmap.josm.data.osm.history.HistoryDataSet;
 import org.openstreetmap.josm.data.osm.history.HistoryOsmPrimitive;
 import org.openstreetmap.josm.gui.HelpAwareOptionPane;
@@ -49,15 +47,11 @@
 import org.openstreetmap.josm.gui.help.HelpUtil;
 import org.openstreetmap.josm.gui.history.HistoryBrowserDialogManager;
-import org.openstreetmap.josm.gui.history.HistoryLoadTask;
 import org.openstreetmap.josm.gui.io.DownloadPrimitivesWithReferrersTask;
 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
-import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
 import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.tools.JosmRuntimeException;
 import org.openstreetmap.josm.tools.Utils;
-import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
 
 /**
@@ -231,27 +225,4 @@
     class ShowHistoryAction extends AbstractAction implements ListSelectionListener {
 
-        private final class ShowHistoryTask implements Runnable {
-            private final Collection<HistoryOsmPrimitive> primitives;
-
-            private ShowHistoryTask(Collection<HistoryOsmPrimitive> primitives) {
-                this.primitives = primitives;
-            }
-
-            @Override
-            public void run() {
-                try {
-                    for (HistoryOsmPrimitive p : primitives) {
-                        final History h = HistoryDataSet.getInstance().getHistory(p.getPrimitiveId());
-                        if (h == null) {
-                            continue;
-                        }
-                        GuiHelper.runInEDT(() -> HistoryBrowserDialogManager.getInstance().show(h));
-                    }
-                } catch (final JosmRuntimeException | IllegalArgumentException | IllegalStateException e) {
-                    GuiHelper.runInEDT(() -> BugReportExceptionHandler.handleException(e));
-                }
-            }
-        }
-
         ShowHistoryAction() {
             putValue(NAME, tr("Show history"));
@@ -261,23 +232,4 @@
         }
 
-        protected List<HistoryOsmPrimitive> filterPrimitivesWithUnloadedHistory(Collection<HistoryOsmPrimitive> primitives) {
-            return primitives.stream()
-                    .filter(p -> HistoryDataSet.getInstance().getHistory(p.getPrimitiveId()) == null)
-                    .collect(Collectors.toList());
-        }
-
-        public void showHistory(final Collection<HistoryOsmPrimitive> primitives) {
-
-            List<HistoryOsmPrimitive> toLoad = filterPrimitivesWithUnloadedHistory(primitives);
-            if (!toLoad.isEmpty()) {
-                HistoryLoadTask task = new HistoryLoadTask(ChangesetContentPanel.this);
-                for (HistoryOsmPrimitive p: toLoad) {
-                    task.add(p);
-                }
-                MainApplication.worker.submit(task);
-            }
-
-            MainApplication.worker.submit(new ShowHistoryTask(primitives));
-        }
 
         protected final void updateEnabledState() {
@@ -289,5 +241,5 @@
             Set<HistoryOsmPrimitive> selected = getSelectedPrimitives();
             if (selected.isEmpty()) return;
-            showHistory(selected);
+            HistoryBrowserDialogManager.getInstance().showHistory(selected);
         }
 
Index: trunk/src/org/openstreetmap/josm/gui/history/ShowHistoryAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/ShowHistoryAction.java	(revision 16460)
+++ trunk/src/org/openstreetmap/josm/gui/history/ShowHistoryAction.java	(revision 16461)
@@ -52,5 +52,4 @@
     static class DoubleClickAdapter extends MouseAdapter {
         private final Function<MouseEvent, PrimitiveId> primitiveIdFunction;
-        private final ShowHistoryAction showHistoryAction = new ShowHistoryAction();
 
         DoubleClickAdapter(Function<MouseEvent, PrimitiveId> primitiveIdFunction) {
@@ -65,6 +64,5 @@
             if (pid == null || pid.isNew())
                 return;
-            showHistoryAction.setPrimitiveId(pid);
-            showHistoryAction.run();
+            HistoryBrowserDialogManager.getInstance().showHistory(Collections.singleton(pid));
         }
     }
