Index: trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowser.java	(revision 4405)
+++ trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowser.java	(revision 4406)
@@ -30,4 +30,5 @@
     private CoordinateInfoViewer coordinateInfoViewer;
     private JTabbedPane tpViewers;
+    private VersionTable versionTable;
 
     /**
@@ -53,6 +54,6 @@
         pnl.setLayout(new BorderLayout());
 
-        VersionTable tbl = new VersionTable(model);
-        pnl.add(embeddInScrollPane(tbl), BorderLayout.CENTER);
+        versionTable = new VersionTable(model);
+        pnl.add(embeddInScrollPane(versionTable), BorderLayout.CENTER);
         return pnl;
     }
@@ -126,4 +127,5 @@
     public void populate(History history) {
         model.setHistory(history);
+        versionTable.updateSelection();
 
         tpViewers.removeAll();
Index: trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java	(revision 4405)
+++ trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java	(revision 4406)
@@ -174,14 +174,20 @@
         this.history = history;
         if (history.getNumVersions() > 0) {
-            current = history.getEarliest();
-            reference = history.getEarliest();
-            setLatest(null);
+            HistoryOsmPrimitive newLatest = null;
             if (getEditLayer() != null) {
                 OsmPrimitive p = getEditLayer().data.getPrimitiveById(history.getId(), history.getType());
                 if (canShowAsLatest(p)) {
-                    HistoryOsmPrimitive latest = new HistoryPrimitiveBuilder().build(p);
-                    setLatest(latest);
+                    newLatest = new HistoryPrimitiveBuilder().build(p);
                 }
             }
+            if (newLatest == null) {
+                current = history.getLatest();
+                int prevIndex = history.getNumVersions() - 2;
+                reference = prevIndex < 0 ? history.getEarliest() : history.get(prevIndex);
+            } else {
+                reference = history.getLatest();
+                current = newLatest;
+            }
+            setLatest(newLatest);
         }
         initTagTableModels();
Index: trunk/src/org/openstreetmap/josm/gui/history/VersionTable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/VersionTable.java	(revision 4405)
+++ trunk/src/org/openstreetmap/josm/gui/history/VersionTable.java	(revision 4406)
@@ -95,4 +95,9 @@
     }
 
+    public void updateSelection() {
+        final int row = getVersionTableModel().getRowCount() - 1;
+        setRowSelectionInterval(row, row);
+    }
+
     class PopupMenuTrigger extends MouseAdapter {
         @Override
