diff --git a/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java b/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
index 335f000..b3f259c 100644
--- a/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
+++ b/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
@@ -145,7 +145,7 @@ public class HistoryBrowserModel extends Observable implements LayerChangeListen
     protected boolean canShowAsLatest(OsmPrimitive primitive) {
         if (primitive == null) return false;
         if (primitive.isNew() || !primitive.isUsable()) return false;
-        
+
         //try creating a history primitive. if that fails, the primitive cannot be used.
         try {
             HistoryOsmPrimitive.forOsmPrimitive(primitive);
@@ -571,11 +571,17 @@ public class HistoryBrowserModel extends Observable implements LayerChangeListen
         @Override
         public int getRowCount() {
             int n = 0;
-            if (current != null && current.getType().equals(OsmPrimitiveType.WAY)) {
-                n = ((HistoryWay)current).getNumNodes();
+            HistoryOsmPrimitive target = null;
+            if(pointInTimeType == PointInTimeType.CURRENT_POINT_IN_TIME) {
+                target = current;
+            } else if (pointInTimeType == PointInTimeType.REFERENCE_POINT_IN_TIME) {
+                target = reference;
             }
-            if (reference != null && reference.getType().equals(OsmPrimitiveType.WAY)) {
-                n = Math.max(n,((HistoryWay)reference).getNumNodes());
+
+            if (target != null && target.getType().equals(OsmPrimitiveType.WAY)) {
+                n = ((HistoryWay)target).getNumNodes();
+            } else {
+                n = 0;
             }
             return n;
         }
@@ -671,11 +677,17 @@ public class HistoryBrowserModel extends Observable implements LayerChangeListen
         @Override
         public int getRowCount() {
             int n = 0;
-            if (current != null && current.getType().equals(OsmPrimitiveType.RELATION)) {
-                n = ((HistoryRelation)current).getNumMembers();
+            HistoryOsmPrimitive target = null;
+            if(pointInTimeType == PointInTimeType.CURRENT_POINT_IN_TIME) {
+                target = current;
+            } else if (pointInTimeType == PointInTimeType.REFERENCE_POINT_IN_TIME) {
+                target = reference;
             }
-            if (reference != null && reference.getType().equals(OsmPrimitiveType.RELATION)) {
-                n = Math.max(n,((HistoryRelation)reference).getNumMembers());
+
+            if (target != null && target.getType().equals(OsmPrimitiveType.RELATION)) {
+                n = ((HistoryRelation)target).getNumMembers();
+            } else {
+                n = 0;
             }
             return n;
         }
