Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java	(revision 9525)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java	(revision 9526)
@@ -5,4 +5,5 @@
 
 import java.awt.BorderLayout;
+import java.awt.Component;
 import java.awt.Container;
 import java.awt.Dimension;
@@ -70,4 +71,5 @@
     /** the unique instance of the cache manager  */
     private static volatile ChangesetCacheManager instance;
+    private JTabbedPane pnlChangesetDetailTabs;
 
     /**
@@ -164,5 +166,6 @@
     protected JPanel buildChangesetDetailPanel() {
         JPanel pnl = new JPanel(new BorderLayout());
-        JTabbedPane tp = new JTabbedPane();
+        JTabbedPane tp =  new JTabbedPane();
+        pnlChangesetDetailTabs = tp;
 
         // -- add the details panel
@@ -647,4 +650,17 @@
 
     /**
+     * Selects the given component in the detail tabbed panel
+     * @param clazz the class of the component to select
+     */
+    public void setSelectedComponentInDetailPanel(Class<? extends JComponent> clazz) {
+        for (Component component : pnlChangesetDetailTabs.getComponents()) {
+            if (component.getClass().equals(clazz)) {
+                pnlChangesetDetailTabs.setSelectedComponent(component);
+                break;
+            }
+        }
+    }
+
+    /**
      * Runs the given changeset download task.
      * @param task The changeset download task to run
Index: trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java	(revision 9525)
+++ trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java	(revision 9526)
@@ -3,4 +3,5 @@
 
 import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
 
 import java.awt.BorderLayout;
@@ -31,4 +32,6 @@
 import org.openstreetmap.josm.gui.JosmUserIdentityManager;
 import org.openstreetmap.josm.gui.dialogs.ChangesetDialog;
+import org.openstreetmap.josm.gui.dialogs.changeset.ChangesetCacheManager;
+import org.openstreetmap.josm.gui.dialogs.changeset.ChangesetDiscussionPanel;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
@@ -51,5 +54,7 @@
     private UrlLabel lblUser;
     private UrlLabel lblChangeset;
-    private final OpenChangesetDialogAction changesetDialogAction = new OpenChangesetDialogAction();
+    private final JButton lblChangesetComments = new JButton(ImageProvider.get("dialogs/notes/note_comment"));
+    private final OpenChangesetDialogAction changesetCommentsDialogAction = new OpenChangesetDialogAction(ChangesetDiscussionPanel.class);
+    private final OpenChangesetDialogAction changesetDialogAction = new OpenChangesetDialogAction(null);
     private final JButton changesetButton = new JButton(changesetDialogAction);
     private JPanel pnlChangesetSource;
@@ -100,5 +105,11 @@
         pnlUserAndChangeset.add(changesetButton);
         lblChangeset = new UrlLabel("", 2);
-        pnlUserAndChangeset.add(lblChangeset);
+        final JPanel pnlChangesetInfo = new JPanel(new BorderLayout());
+        pnlChangesetInfo.add(lblChangeset, BorderLayout.CENTER);
+        lblChangesetComments.setAction(changesetCommentsDialogAction);
+        lblChangesetComments.setMargin(new Insets(0, 0, 0, 0));
+        lblChangesetComments.setIcon(new ImageProvider("dialogs/notes/note_comment").setMaxSize(12).get());
+        pnlChangesetInfo.add(lblChangesetComments, BorderLayout.EAST);
+        pnlUserAndChangeset.add(pnlChangesetInfo);
 
         texChangesetComment = buildTextArea(tr("Changeset comment"));
@@ -193,8 +204,20 @@
     }
 
+    /**
+     * Updates the content of this panel based on the changeset information given by {@code primitive}.
+     * @param primitive the primitive to extract the changeset information from
+     * @param isLatest whether this relates to a not yet commited changeset
+     */
     public void update(final OsmPrimitive primitive, final boolean isLatest) {
         update(Changeset.fromPrimitive(primitive), isLatest, primitive.getTimestamp(), primitive.getVersion());
     }
 
+    /**
+     * Updates the content of this panel based on the changeset information given by {@code cs}.
+     * @param cs the changeset information
+     * @param isLatest whether this relates to a not yet commited changeset
+     * @param timestamp the timestamp
+     * @param version the version of the primitive
+     */
     public void update(final Changeset cs, final boolean isLatest, final Date timestamp, final long version) {
         lblInfo.setText(getInfoText(timestamp, version, isLatest));
@@ -205,4 +228,9 @@
             lblChangeset.setUrl(url);
             lblChangeset.setDescription(Long.toString(cs.getId()));
+            changesetCommentsDialogAction.setId(cs.getId());
+            lblChangesetComments.setVisible(cs.getCommentsCount() > 0);
+            lblChangesetComments.setText(String.valueOf(cs.getCommentsCount()));
+            lblChangesetComments.setToolTipText(trn("This changeset has {0} comment", "This changeset has {0} comments",
+                    cs.getCommentsCount(), cs.getCommentsCount()));
             changesetDialogAction.setId(cs.getId());
             changesetButton.setEnabled(true);
@@ -229,4 +257,5 @@
             lblChangeset.setDescription(tr("none"));
             lblChangeset.setUrl(null);
+            lblChangesetComments.setVisible(false);
             changesetDialogAction.setId(null);
             changesetButton.setEnabled(false);
@@ -251,12 +280,14 @@
 
     static class OpenChangesetDialogAction extends AbstractAction {
+        private final Class<? extends JComponent> componentToSelect;
         private Integer id;
 
-        OpenChangesetDialogAction() {
+        OpenChangesetDialogAction(Class<? extends JComponent> componentToSelect) {
             super(tr("Changeset"), new ImageProvider("dialogs/changeset", "changesetmanager").resetMaxSize(new Dimension(16, 16)).get());
             putValue(SHORT_DESCRIPTION, tr("Opens the Changeset Manager window for the selected changesets"));
-        }
-
-        public void setId(Integer id) {
+            this.componentToSelect = componentToSelect;
+        }
+
+        void setId(Integer id) {
             this.id = id;
         }
@@ -265,4 +296,7 @@
         public void actionPerformed(ActionEvent e) {
             ChangesetDialog.LaunchChangesetManager.displayChangesets(Collections.singleton(id));
+            if (componentToSelect != null) {
+                ChangesetCacheManager.getInstance().setSelectedComponentInDetailPanel(componentToSelect);
+            }
         }
     }
