Index: trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowser.java	(revision 19012)
+++ trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowser.java	(revision 19013)
@@ -12,4 +12,6 @@
 import javax.swing.JSplitPane;
 import javax.swing.JTabbedPane;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
 
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -23,5 +25,5 @@
  * @since 1709
  */
-public class HistoryBrowser extends JPanel implements Destroyable {
+public class HistoryBrowser extends JPanel implements Destroyable, ChangeListener {
 
     /** the model */
@@ -116,4 +118,5 @@
         boolean samePrimitive = model.isSamePrimitive(history); // needs to be before setHistory
         model.setHistory(history);
+        model.addChangeListener(this);
         if (samePrimitive) {
             // no need to rebuild the UI
@@ -160,4 +163,5 @@
         if (model != null) {
             model.unlinkAsListener();
+            model.removeChangeListener(this);
             model = null;
         }
@@ -169,3 +173,8 @@
         coordinateInfoViewer = null;
     }
+
+    @Override
+    public void stateChanged(ChangeEvent e) {
+        tagInfoViewer.adjustWidths();
+    }
 }
Index: trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialogManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialogManager.java	(revision 19012)
+++ trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialogManager.java	(revision 19013)
@@ -19,4 +19,5 @@
 import javax.swing.JOptionPane;
 import javax.swing.SwingUtilities;
+import javax.swing.event.ChangeEvent;
 
 import org.openstreetmap.josm.data.osm.PrimitiveId;
@@ -148,4 +149,5 @@
             placeOnScreen(dialog);
             dialog.setVisible(true);
+            dialog.getHistoryBrowser().stateChanged(new ChangeEvent(this));
             dialogs.put(h.getId(), dialog);
         }
Index: trunk/src/org/openstreetmap/josm/gui/history/TagInfoViewer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/TagInfoViewer.java	(revision 19012)
+++ trunk/src/org/openstreetmap/josm/gui/history/TagInfoViewer.java	(revision 19013)
@@ -36,4 +36,6 @@
  */
 public class TagInfoViewer extends HistoryViewerPanel {
+    private JTable reference;
+    private JTable current;
     private static final class RepaintOnFocusChange implements FocusListener {
         @Override
@@ -63,10 +65,12 @@
     @Override
     protected JTable buildReferenceTable() {
-        return buildTable(PointInTimeType.REFERENCE_POINT_IN_TIME);
+        reference = buildTable(PointInTimeType.REFERENCE_POINT_IN_TIME);
+        return reference;
     }
 
     @Override
     protected JTable buildCurrentTable() {
-        return buildTable(PointInTimeType.CURRENT_POINT_IN_TIME);
+        current = buildTable(PointInTimeType.CURRENT_POINT_IN_TIME);
+        return current;
     }
 
@@ -106,3 +110,22 @@
         return table;
     }
+
+    /**
+     * Use current data to adjust preferredWidth for both tables.
+     * @since 19013
+     */
+    public void adjustWidths() {
+        // We have two tables with 3 columns each. no column should get more than 1/4 of the size
+        int maxWidth = this.getWidth() / 4;
+        if (maxWidth == 0)
+            maxWidth = Integer.MAX_VALUE;
+        adjustWidths(reference, maxWidth);
+        adjustWidths(current, maxWidth);
+    }
+
+    private static void adjustWidths(JTable table, int maxWidth) {
+        for (int column = 0; column < table.getColumnCount(); column++) {
+            TableHelper.adjustColumnWidth(table, column, maxWidth);
+        }
+    }
 }
Index: trunk/src/org/openstreetmap/josm/gui/history/TagTableColumnModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/TagTableColumnModel.java	(revision 19012)
+++ trunk/src/org/openstreetmap/josm/gui/history/TagTableColumnModel.java	(revision 19013)
@@ -4,4 +4,5 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import javax.swing.JLabel;
 import javax.swing.table.DefaultTableColumnModel;
 import javax.swing.table.TableColumn;
@@ -42,4 +43,5 @@
         col.setCellRenderer(renderer);
         col.setPreferredWidth(10);
+        col.setMaxWidth(new JLabel("v" + Long.MAX_VALUE).getMinimumSize().width); // See #23482
         addColumn(col);
     }
