Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 16960)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 16961)
@@ -62,4 +62,5 @@
 import javax.swing.UIManager;
 import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.plaf.FontUIResource;
 
 import org.openstreetmap.josm.actions.DeleteAction;
@@ -1110,12 +1111,20 @@
         }
 
-        double menuFontFactor = Config.getPref().getDouble("gui.scale.menu.font", 1.0);
-        if (menuFontFactor != 1.0) {
-            for (String key : Arrays.asList(
-                    "Menu.font", "MenuItem.font", "CheckBoxMenuItem.font", "RadioButtonMenuItem.font", "MenuItem.acceleratorFont")) {
-                Font font = UIManager.getFont(key);
-                if (font != null) {
-                    UIManager.put(key, font.deriveFont(font.getSize2D() * (float) menuFontFactor));
-                }
+        scaleFonts(Config.getPref().getDouble("gui.scale.menu.font", 1.0),
+                "Menu.font", "MenuItem.font", "CheckBoxMenuItem.font", "RadioButtonMenuItem.font", "MenuItem.acceleratorFont");
+        scaleFonts(Config.getPref().getDouble("gui.scale.list.font", 1.0),
+                "List.font");
+        // "Table.font" see org.openstreetmap.josm.gui.util.TableHelper.setFont
+    }
+
+    private static void scaleFonts(double factor, String... fonts) {
+        if (factor == 1.0) {
+            return;
+        }
+        for (String key : fonts) {
+            Font font = UIManager.getFont(key);
+            if (font != null) {
+                font = font.deriveFont((float) (font.getSize2D() * factor));
+                UIManager.put(key, new FontUIResource(font));
             }
         }
