Index: trunk/src/org/openstreetmap/josm/gui/history/NodeListViewer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/NodeListViewer.java	(revision 14674)
+++ trunk/src/org/openstreetmap/josm/gui/history/NodeListViewer.java	(revision 14675)
@@ -55,23 +55,18 @@
     @Override
     protected JTable buildReferenceTable() {
-        final DiffTableModel tableModel = model.getNodeListTableModel(PointInTimeType.REFERENCE_POINT_IN_TIME);
+        return buildTable(PointInTimeType.REFERENCE_POINT_IN_TIME, "table.referencenodelisttable");
+    }
+
+    @Override
+    protected JTable buildCurrentTable() {
+        return buildTable(PointInTimeType.CURRENT_POINT_IN_TIME, "table.currentnodelisttable");
+    }
+
+    private JTable buildTable(PointInTimeType pointInTimeType, String name) {
+        final DiffTableModel tableModel = model.getNodeListTableModel(pointInTimeType);
         final NodeListTableColumnModel columnModel = new NodeListTableColumnModel();
         final JTable table = new JTable(tableModel, columnModel);
         tableModel.addTableModelListener(new ReversedChangeListener(table, columnModel));
-        table.setName("table.referencenodelisttable");
-        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-        selectionSynchronizer.participateInSynchronizedSelection(table.getSelectionModel());
-        table.addMouseListener(new InternalPopupMenuLauncher());
-        table.addMouseListener(new DoubleClickAdapter(table));
-        return table;
-    }
-
-    @Override
-    protected JTable buildCurrentTable() {
-        final DiffTableModel tableModel = model.getNodeListTableModel(PointInTimeType.CURRENT_POINT_IN_TIME);
-        final NodeListTableColumnModel columnModel = new NodeListTableColumnModel();
-        final JTable table = new JTable(tableModel, columnModel);
-        tableModel.addTableModelListener(new ReversedChangeListener(table, columnModel));
-        table.setName("table.currentnodelisttable");
+        table.setName(name);
         table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         selectionSynchronizer.participateInSynchronizedSelection(table.getSelectionModel());
Index: trunk/src/org/openstreetmap/josm/gui/history/RelationMemberListViewer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/RelationMemberListViewer.java	(revision 14674)
+++ trunk/src/org/openstreetmap/josm/gui/history/RelationMemberListViewer.java	(revision 14675)
@@ -37,22 +37,17 @@
     @Override
     protected JTable buildReferenceTable() {
-        JTable table = new JTable(
-                model.getRelationMemberTableModel(PointInTimeType.REFERENCE_POINT_IN_TIME),
-                new RelationMemberTableColumnModel()
-                );
-        table.setName("table.referencememberlisttable");
-        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-        selectionSynchronizer.participateInSynchronizedSelection(table.getSelectionModel());
-        table.getModel().addTableModelListener(new MemberModelChanged(table));
-        return table;
+        return buildTable(PointInTimeType.REFERENCE_POINT_IN_TIME, "table.referencememberlisttable");
     }
 
     @Override
     protected JTable buildCurrentTable() {
+        return buildTable(PointInTimeType.CURRENT_POINT_IN_TIME, "table.currentmemberlisttable");
+    }
+
+    private JTable buildTable(PointInTimeType pointInTimeType, String name) {
         JTable table = new JTable(
-                model.getRelationMemberTableModel(PointInTimeType.CURRENT_POINT_IN_TIME),
-                new RelationMemberTableColumnModel()
-                );
-        table.setName("table.currentmemberlisttable");
+                model.getRelationMemberTableModel(pointInTimeType),
+                new RelationMemberTableColumnModel());
+        table.setName(name);
         table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
         selectionSynchronizer.participateInSynchronizedSelection(table.getSelectionModel());
