Index: /trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowser.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowser.java	(revision 16394)
+++ /trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowser.java	(revision 16395)
@@ -6,4 +6,5 @@
 import java.awt.BorderLayout;
 import java.awt.Dimension;
+import java.util.Arrays;
 
 import javax.swing.JPanel;
@@ -152,9 +153,14 @@
     @Override
     public void destroy() {
-        model.unlinkAsListener();
-        for (Destroyable component : new Destroyable[] {
-                tagInfoViewer, nodeListViewer, relationMemberListViewer, coordinateInfoViewer}) {
-            component.destroy();
+        if (model != null) {
+            model.unlinkAsListener();
+            model = null;
         }
+        Arrays.asList(tagInfoViewer, nodeListViewer, relationMemberListViewer, coordinateInfoViewer).stream()
+                .filter(Destroyable.class::isInstance).forEach(Destroyable::destroy);
+        tagInfoViewer = null;
+        nodeListViewer = null;
+        relationMemberListViewer = null;
+        coordinateInfoViewer = null;
     }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/history/VersionTable.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/history/VersionTable.java	(revision 16394)
+++ /trunk/src/org/openstreetmap/josm/gui/history/VersionTable.java	(revision 16395)
@@ -255,8 +255,12 @@
         @Override
         public void destroy() {
-            if (changesetInfoAction != null)
+            if (changesetInfoAction != null) {
                 changesetInfoAction.destroy();
-            if (userInfoAction != null)
+                changesetInfoAction = null;
+            }
+            if (userInfoAction != null) {
                 userInfoAction.destroy();
+                userInfoAction = null;
+            }
         }
     }
