diff --git a/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java b/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java
index f001e982c..d86d7373c 100644
--- a/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java
+++ b/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java
@@ -9,8 +9,11 @@
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
 import java.awt.Insets;
+import java.awt.Rectangle;
 import java.awt.event.ActionEvent;
 import java.text.DateFormat;
+import java.text.MessageFormat;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.Date;
 
@@ -19,9 +22,11 @@
 import javax.swing.JComponent;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
 import javax.swing.JTextArea;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
+import javax.swing.plaf.basic.BasicArrowButton;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.Changeset;
@@ -38,6 +43,7 @@
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.OpenBrowser;
 import org.openstreetmap.josm.tools.Utils;
 import org.openstreetmap.josm.tools.date.DateUtils;
 
@@ -107,8 +113,13 @@ protected void build() {
         lblUser = new UrlLabel("", 2);
         pnlUserAndChangeset.add(lblUser, GBC.eol().insets(5, 0, 0, 0).weight(1, 0));
 
+        final JPanel changesetPanel = new JPanel(new BorderLayout());
         changesetButton.setMargin(new Insets(0, 0, 0, 2));
-        pnlUserAndChangeset.add(changesetButton, GBC.std().fill().weight(0, 0));
+        changesetPanel.add(changesetButton, BorderLayout.CENTER);
+        final BasicArrowButton arrowButton = new BasicArrowButton(BasicArrowButton.SOUTH);
+        arrowButton.addActionListener(action -> new OpenChangesetPopupMenu(changesetDialogAction).show(arrowButton));
+        changesetPanel.add(arrowButton, BorderLayout.EAST);
+        pnlUserAndChangeset.add(changesetPanel, GBC.std().fill().weight(0, 0));
 
         lblChangeset = new UrlLabel("", 2);
         pnlUserAndChangeset.add(lblChangeset, GBC.std().insets(5, 0, 0, 0).weight(1, 0));
@@ -310,4 +321,36 @@ public void actionPerformed(ActionEvent e) {
             }
         }
     }
+
+    static class OpenChangesetPopupMenu extends JPopupMenu {
+        OpenChangesetPopupMenu(final OpenChangesetDialogAction openChangesetDialogAction) {
+            add(openChangesetDialogAction).setText(tr("Open Changeset Manager"));
+            Main.pref.getCollection("history-dialog.urls",
+                    Arrays.asList(Main.getBaseBrowseUrl() + "/changeset/{0}", "http://osmhv.openstreetmap.de/changeset.jsp?id={0}", "https://overpass-api.de/achavi/?changeset={0}")
+            ).stream()
+                    .map(template -> MessageFormat.format(template, Long.toString(openChangesetDialogAction.id)))
+                    .map(OpenBrowserAction::new)
+                    .forEach(this::add);
+        }
+
+        void show(final JComponent parent) {
+            final Rectangle r = parent.getBounds();
+            show(parent.getParent(), r.x + r.width - (int) getPreferredSize().getWidth(), r.y + r.height);
+        }
+    }
+
+    static class OpenBrowserAction extends AbstractAction {
+        final String url;
+
+        OpenBrowserAction(String url) {
+            putValue(NAME, tr("Open {0}", url));
+            new ImageProvider("help/internet").getResource().attachImageIcon(this, true);
+            this.url = url;
+        }
+
+        @Override
+        public void actionPerformed(ActionEvent e) {
+            OpenBrowser.displayUrl(url);
+        }
+    }
 }
