Index: src/org/openstreetmap/josm/actions/PreferencesAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/PreferencesAction.java	(revision 1031)
+++ src/org/openstreetmap/josm/actions/PreferencesAction.java	(working copy)
@@ -3,6 +3,7 @@
 
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.awt.Dimension;
 import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
@@ -36,12 +37,14 @@
 	 */
 	public void actionPerformed(ActionEvent e) {
 		PreferenceDialog prefDlg = new PreferenceDialog();
+		prefDlg.setMinimumSize(new Dimension(300,200));
 		JPanel prefPanel = new JPanel(new GridBagLayout());
 		prefPanel.add(prefDlg, GBC.eol().fill(GBC.BOTH));
 
 		JOptionPane pane = new JOptionPane(prefPanel, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
 		JDialog dlg = pane.createDialog(Main.parent, tr("Preferences"));
 		dlg.setResizable(true);
+		dlg.setMinimumSize(new Dimension(400,300));
 
 //		if (dlg.getWidth() > 600)
 //			dlg.setSize(600, dlg.getHeight());
Index: src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java	(revision 1027)
+++ src/org/openstreetmap/josm/gui/preferences/PreferenceDialog.java	(working copy)
@@ -15,6 +15,7 @@
 import javax.swing.JLabel;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
+import javax.swing.JScrollPane;
 import javax.swing.JTabbedPane;
 
 import org.openstreetmap.josm.Main;
@@ -59,7 +60,8 @@
 		descLabel.setFont(descLabel.getFont().deriveFont(Font.ITALIC));
 		p.add(descLabel, GBC.eol().insets(5,0,5,20).fill(GBC.HORIZONTAL));
 
-		addTab(null, ImageProvider.get("preferences", icon), p);
+        JScrollPane sp = new JScrollPane(p);
+		addTab(null, ImageProvider.get("preferences", icon), sp);
 		setToolTipTextAt(getTabCount()-1, "<html>"+desc+"</html>");
 		return p;
 	}
