Index: /trunk/src/org/openstreetmap/josm/data/Bounds.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/Bounds.java	(revision 4362)
+++ /trunk/src/org/openstreetmap/josm/data/Bounds.java	(revision 4363)
@@ -63,5 +63,5 @@
         String[] components = asString.split(separator);
         if (components.length != 4)
-            throw new IllegalArgumentException(MessageFormat.format("Exactly four doubles excpected in string, got {0}", components.length));
+            throw new IllegalArgumentException(MessageFormat.format("Exactly four doubles excpected in string, got {0}: {1}", components.length, asString));
         double[] values = new double[4];
         for (int i=0; i<4; i++) {
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java	(revision 4362)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java	(revision 4363)
@@ -12,4 +12,5 @@
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
@@ -175,55 +176,50 @@
     }
 
-    protected JPanel buildButtonPanel() {
-        JPanel tp = getButtonPanel(5);
-
-        // -- select objects action
-        selectObjectsAction = new SelectObjectsAction();
-        tp.add(new SideButton(selectObjectsAction, false));
-        cbInSelectionOnly.addItemListener(selectObjectsAction);
-        lstInActiveDataLayer.getSelectionModel().addListSelectionListener(selectObjectsAction);
-        lstInSelection.getSelectionModel().addListSelectionListener(selectObjectsAction);
-
-        // -- read changesets action
-        readChangesetAction = new ReadChangesetsAction();
-        tp.add(new SideButton(readChangesetAction, false));
-        cbInSelectionOnly.addItemListener(readChangesetAction);
-        lstInActiveDataLayer.getSelectionModel().addListSelectionListener(readChangesetAction);
-        lstInSelection.getSelectionModel().addListSelectionListener(readChangesetAction);
-
-        // -- close changesets action
-        closeChangesetAction = new CloseOpenChangesetsAction();
-        tp.add(new SideButton(closeChangesetAction, false));
-        cbInSelectionOnly.addItemListener(closeChangesetAction);
-        lstInActiveDataLayer.getSelectionModel().addListSelectionListener(closeChangesetAction);
-        lstInSelection.getSelectionModel().addListSelectionListener(closeChangesetAction);
-
-        // -- show info action
-        showChangesetInfoAction = new ShowChangesetInfoAction();
-        tp.add(new SideButton(showChangesetInfoAction, false));
-        cbInSelectionOnly.addItemListener(showChangesetInfoAction);
-        lstInActiveDataLayer.getSelectionModel().addListSelectionListener(showChangesetInfoAction);
-        lstInSelection.getSelectionModel().addListSelectionListener(showChangesetInfoAction);
-
-        // -- launch changeset manager action
-        launchChangesetManagerAction = new LaunchChangesetManagerAction();
-        tp.add(new SideButton(launchChangesetManagerAction, false));
-        cbInSelectionOnly.addItemListener(launchChangesetManagerAction);
-        lstInActiveDataLayer.getSelectionModel().addListSelectionListener(launchChangesetManagerAction);
-        lstInSelection.getSelectionModel().addListSelectionListener(launchChangesetManagerAction);
-
-        return tp;
-    }
-
     protected void build() {
         JPanel pnl = new JPanel(new BorderLayout());
         pnl.add(buildFilterPanel(), BorderLayout.NORTH);
         pnl.add(pnlList = buildListPanel(), BorderLayout.CENTER);
-        pnl.add(buildButtonPanel(), BorderLayout.SOUTH);
-        add(pnl, BorderLayout.CENTER);
 
         cbInSelectionOnly.addItemListener(new FilterChangeHandler());
 
         HelpUtil.setHelpContext(pnl, HelpUtil.ht("/Dialog/ChangesetListDialog"));
+
+        // -- select objects action
+        selectObjectsAction = new SelectObjectsAction();
+        cbInSelectionOnly.addItemListener(selectObjectsAction);
+        lstInActiveDataLayer.getSelectionModel().addListSelectionListener(selectObjectsAction);
+        lstInSelection.getSelectionModel().addListSelectionListener(selectObjectsAction);
+
+        // -- read changesets action
+        readChangesetAction = new ReadChangesetsAction();
+        cbInSelectionOnly.addItemListener(readChangesetAction);
+        lstInActiveDataLayer.getSelectionModel().addListSelectionListener(readChangesetAction);
+        lstInSelection.getSelectionModel().addListSelectionListener(readChangesetAction);
+
+        // -- close changesets action
+        closeChangesetAction = new CloseOpenChangesetsAction();
+        cbInSelectionOnly.addItemListener(closeChangesetAction);
+        lstInActiveDataLayer.getSelectionModel().addListSelectionListener(closeChangesetAction);
+        lstInSelection.getSelectionModel().addListSelectionListener(closeChangesetAction);
+
+        // -- show info action
+        showChangesetInfoAction = new ShowChangesetInfoAction();
+        cbInSelectionOnly.addItemListener(showChangesetInfoAction);
+        lstInActiveDataLayer.getSelectionModel().addListSelectionListener(showChangesetInfoAction);
+        lstInSelection.getSelectionModel().addListSelectionListener(showChangesetInfoAction);
+
+        // -- launch changeset manager action
+        launchChangesetManagerAction = new LaunchChangesetManagerAction();
+        cbInSelectionOnly.addItemListener(launchChangesetManagerAction);
+        lstInActiveDataLayer.getSelectionModel().addListSelectionListener(launchChangesetManagerAction);
+        lstInSelection.getSelectionModel().addListSelectionListener(launchChangesetManagerAction);
+
+        createLayout(pnl, false, Arrays.asList(new SideButton[] {
+            new SideButton(selectObjectsAction, false),
+            new SideButton(readChangesetAction, false),
+            new SideButton(closeChangesetAction, false),
+            new SideButton(showChangesetInfoAction, false),
+            new SideButton(launchChangesetManagerAction, false)
+        }));
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 4362)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 4363)
@@ -13,4 +13,5 @@
 import java.awt.event.MouseEvent;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -102,7 +103,19 @@
         treesPanel.setBackground(redoTree.getBackground());
 
-        scrollPane = new JScrollPane(treesPanel);
-        add(scrollPane, BorderLayout.CENTER);
-        add(createButtonPanel(), BorderLayout.SOUTH);
+        SelectAction selectAction = new SelectAction();
+        wireUpdateEnabledStateUpdater(selectAction, undoTree);
+        wireUpdateEnabledStateUpdater(selectAction, redoTree);
+
+        UndoRedoAction undoAction = new UndoRedoAction(UndoRedoType.UNDO);
+        wireUpdateEnabledStateUpdater(undoAction, undoTree);
+
+        UndoRedoAction redoAction = new UndoRedoAction(UndoRedoType.REDO);
+        wireUpdateEnabledStateUpdater(redoAction, redoTree);
+
+        scrollPane = (JScrollPane)createLayout(treesPanel, true, Arrays.asList(new SideButton[] {
+            new SideButton(selectAction),
+            new SideButton(undoAction),
+            new SideButton(redoAction)
+        }));
     }
 
@@ -144,23 +157,4 @@
             }
         }
-    }
-
-    protected JPanel createButtonPanel() {
-        JPanel buttonPanel = getButtonPanel(3);
-
-        SelectAction selectAction = new SelectAction();
-        wireUpdateEnabledStateUpdater(selectAction, undoTree);
-        wireUpdateEnabledStateUpdater(selectAction, redoTree);
-        buttonPanel.add(new SideButton(selectAction));
-
-        UndoRedoAction undoAction = new UndoRedoAction(UndoRedoType.UNDO);
-        wireUpdateEnabledStateUpdater(undoAction, undoTree);
-        buttonPanel.add(new SideButton(undoAction));
-
-        UndoRedoAction redoAction = new UndoRedoAction(UndoRedoType.REDO);
-        wireUpdateEnabledStateUpdater(redoAction, redoTree);
-        buttonPanel.add(new SideButton(redoAction));
-
-        return buttonPanel;
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 4362)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 4363)
@@ -6,5 +6,4 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Graphics;
@@ -14,4 +13,5 @@
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Iterator;
@@ -21,6 +21,4 @@
 import javax.swing.AbstractAction;
 import javax.swing.JList;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
 import javax.swing.ListModel;
 import javax.swing.ListSelectionModel;
@@ -95,6 +93,4 @@
         });
 
-        add(new JScrollPane(lstConflicts), BorderLayout.CENTER);
-
         SideButton btnResolve = new SideButton(actResolve = new ResolveAction());
         lstConflicts.getSelectionModel().addListSelectionListener(actResolve);
@@ -103,8 +99,7 @@
         lstConflicts.getSelectionModel().addListSelectionListener(actSelect);
 
-        JPanel buttonPanel = getButtonPanel(2);
-        buttonPanel.add(btnResolve);
-        buttonPanel.add(btnSelect);
-        add(buttonPanel, BorderLayout.SOUTH);
+        createLayout(lstConflicts, true, Arrays.asList(new SideButton[] {
+            btnResolve, btnSelect
+        }));
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java	(revision 4362)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java	(revision 4363)
@@ -5,5 +5,4 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.Graphics2D;
@@ -12,4 +11,5 @@
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
@@ -18,6 +18,4 @@
 
 import javax.swing.JCheckBox;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
 import javax.swing.JTable;
 import javax.swing.ListSelectionModel;
@@ -82,66 +80,4 @@
     }
 
-    protected JPanel buildButtonRow() {
-        JPanel pnl = getButtonPanel(5);
-
-        addButton = new SideButton(marktr("Add"), "add", "SelectionList", tr("Add filter."),
-                new ActionListener(){
-            public void actionPerformed(ActionEvent evt){
-                Filter filter = (Filter)SearchAction.showSearchDialog(new Filter());
-                if(filter != null){
-                    filterModel.addFilter(filter);
-                }
-            }
-        });
-        pnl.add(addButton);
-
-        editButton = new SideButton(marktr("Edit"), "edit", "SelectionList", tr("Edit filter."),
-                new ActionListener(){
-            public void actionPerformed(ActionEvent evt){
-                int index = userTable.getSelectionModel().getMinSelectionIndex();
-                if(index < 0) return;
-                Filter f = filterModel.getFilter(index);
-                Filter filter = (Filter)SearchAction.showSearchDialog(f);
-                if(filter != null){
-                    filterModel.setFilter(index, filter);
-                }
-            }
-        });
-        pnl.add(editButton);
-
-        deleteButton = new SideButton(marktr("Delete"), "delete", "SelectionList", tr("Delete filter."),
-                new ActionListener(){
-            public void actionPerformed(ActionEvent evt){
-                int index = userTable.getSelectionModel().getMinSelectionIndex();
-                if(index < 0) return;
-                filterModel.removeFilter(index);
-            }
-        });
-        pnl.add(deleteButton);
-
-        upButton = new SideButton(marktr("Up"), "up", "SelectionList", tr("Move filter up."),
-                new ActionListener(){
-            public void actionPerformed(ActionEvent evt){
-                int index = userTable.getSelectionModel().getMinSelectionIndex();
-                if(index < 0) return;
-                filterModel.moveUpFilter(index);
-                userTable.getSelectionModel().setSelectionInterval(index-1, index-1);
-            }
-        });
-        pnl.add(upButton);
-
-        downButton = new SideButton(marktr("Down"), "down", "SelectionList", tr("Move filter down."),
-                new ActionListener(){
-            public void actionPerformed(ActionEvent evt){
-                int index = userTable.getSelectionModel().getMinSelectionIndex();
-                if(index < 0) return;
-                filterModel.moveDownFilter(index);
-                userTable.getSelectionModel().setSelectionInterval(index+1, index+1);
-            }
-        });
-        pnl.add(downButton);
-        return pnl;
-    }
-
     protected String[] columnToolTips = {
             tr("Enable filter"),
@@ -153,6 +89,4 @@
 
     protected void build() {
-        JPanel pnl = new JPanel();
-        pnl.setLayout(new BorderLayout());
         userTable = new JTable(filterModel){
             @Override
@@ -185,10 +119,59 @@
         userTable.setDefaultRenderer(String.class, new StringRenderer());
 
-        pnl.add(new JScrollPane(userTable), BorderLayout.CENTER);
-
-        // -- the button row
-        pnl.add(buildButtonRow(), BorderLayout.SOUTH);
-        /*userTable.addMouseListener(new DoubleClickAdapter());*/
-        add(pnl, BorderLayout.CENTER);
+        addButton = new SideButton(marktr("Add"), "add", "SelectionList", tr("Add filter."),
+                new ActionListener(){
+            public void actionPerformed(ActionEvent evt){
+                Filter filter = (Filter)SearchAction.showSearchDialog(new Filter());
+                if(filter != null){
+                    filterModel.addFilter(filter);
+                }
+            }
+        });
+
+        editButton = new SideButton(marktr("Edit"), "edit", "SelectionList", tr("Edit filter."),
+                new ActionListener(){
+            public void actionPerformed(ActionEvent evt){
+                int index = userTable.getSelectionModel().getMinSelectionIndex();
+                if(index < 0) return;
+                Filter f = filterModel.getFilter(index);
+                Filter filter = (Filter)SearchAction.showSearchDialog(f);
+                if(filter != null){
+                    filterModel.setFilter(index, filter);
+                }
+            }
+        });
+
+        deleteButton = new SideButton(marktr("Delete"), "delete", "SelectionList", tr("Delete filter."),
+                new ActionListener(){
+            public void actionPerformed(ActionEvent evt){
+                int index = userTable.getSelectionModel().getMinSelectionIndex();
+                if(index < 0) return;
+                filterModel.removeFilter(index);
+            }
+        });
+
+        upButton = new SideButton(marktr("Up"), "up", "SelectionList", tr("Move filter up."),
+                new ActionListener(){
+            public void actionPerformed(ActionEvent evt){
+                int index = userTable.getSelectionModel().getMinSelectionIndex();
+                if(index < 0) return;
+                filterModel.moveUpFilter(index);
+                userTable.getSelectionModel().setSelectionInterval(index-1, index-1);
+            }
+        });
+
+        downButton = new SideButton(marktr("Down"), "down", "SelectionList", tr("Move filter down."),
+                new ActionListener(){
+            public void actionPerformed(ActionEvent evt){
+                int index = userTable.getSelectionModel().getMinSelectionIndex();
+                if(index < 0) return;
+                filterModel.moveDownFilter(index);
+                userTable.getSelectionModel().setSelectionInterval(index+1, index+1);
+            }
+        });
+
+        createLayout(userTable, true, Arrays.asList(new SideButton[] {
+            addButton, editButton, deleteButton, upButton, downButton
+        }));
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java	(revision 4362)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java	(revision 4363)
@@ -4,5 +4,4 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.event.ActionEvent;
@@ -11,4 +10,5 @@
 import java.awt.event.MouseEvent;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -20,6 +20,4 @@
 import javax.swing.JComponent;
 import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
 import javax.swing.JTable;
 import javax.swing.ListSelectionModel;
@@ -75,23 +73,4 @@
 
     /**
-     * builds the row with the command buttons
-     *
-     * @return the rows with the command buttons
-     */
-    protected JPanel buildButtonRow() {
-        JPanel buttons = getButtonPanel(2);
-
-        SideButton btn = new SideButton(reloadAction = new ReloadAction());
-        btn.setName("btn.reload");
-        buttons.add(btn);
-
-        btn = new SideButton(showHistoryAction = new ShowHistoryAction());
-        btn.setName("btn.showhistory");
-        buttons.add(btn);
-
-        return buttons;
-    }
-
-    /**
      * builds the GUI
      */
@@ -104,5 +83,4 @@
         );
         historyTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
-        historyTable.setName("table.historyitems");
         final TableCellRenderer oldRenderer = historyTable.getTableHeader().getDefaultRenderer();
         historyTable.getTableHeader().setDefaultRenderer(new DefaultTableCellRenderer(){
@@ -121,13 +99,10 @@
         });
         historyTable.addMouseListener(new ShowHistoryMouseAdapter());
-
-        JScrollPane pane = new JScrollPane(historyTable);
-        pane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
-        pane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
         historyTable.setTableHeader(null);
-        pane.setColumnHeaderView(null);
-        add(pane, BorderLayout.CENTER);
-
-        add(buildButtonRow(), BorderLayout.SOUTH);
+
+        createLayout(historyTable, true, Arrays.asList(new SideButton[] {
+            new SideButton(reloadAction = new ReloadAction()),
+            new SideButton(showHistoryAction = new ShowHistoryAction())
+        }));
 
         // wire actions
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java	(revision 4362)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/MapPaintDialog.java	(revision 4363)
@@ -4,5 +4,4 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.Dimension;
@@ -25,4 +24,5 @@
 import java.io.InputStreamReader;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
@@ -91,7 +91,4 @@
 
     protected void build() {
-        JPanel pnl = new JPanel();
-        pnl.setLayout(new BorderLayout());
-
         model = new StylesModel();
 
@@ -136,30 +133,4 @@
         p.add(tblStyles, GBC.std(0, 1).span(2).fill());
 
-        pnl.add(new JScrollPane(p), BorderLayout.CENTER);
-
-        pnl.add(buildButtonRow(), BorderLayout.SOUTH);
-
-        add(pnl, BorderLayout.CENTER);
-    }
-
-    protected static class StylesTable extends JTable {
-
-        public StylesTable(TableModel dm) {
-            super(dm);
-        }
-
-        public void scrollToVisible(int row, int col) {
-            if (!(getParent() instanceof JViewport))
-                return;
-            JViewport viewport = (JViewport) getParent();
-            Rectangle rect = getCellRect(row, col, true);
-            Point pt = viewport.getViewPosition();
-            rect.setLocation(rect.x - pt.x, rect.y - pt.y);
-            viewport.scrollRectToVisible(rect);
-        }
-    }
-
-    protected JPanel buildButtonRow() {
-        JPanel p = getButtonPanel(4);
         reloadAction = new ReloadAction();
         onoffAction = new OnOffAction();
@@ -170,10 +141,28 @@
         selectionModel.addListSelectionListener(upAction);
         selectionModel.addListSelectionListener(downAction);
-        p.add(new SideButton(onoffAction));
-        p.add(new SideButton(upAction));
-        p.add(new SideButton(downAction));
-        p.add(new SideButton(new LaunchMapPaintPreferencesAction()));
-
-        return p;
+
+        createLayout(p, true, Arrays.asList(new SideButton[] {
+            new SideButton(onoffAction),
+            new SideButton(upAction),
+            new SideButton(downAction),
+            new SideButton(new LaunchMapPaintPreferencesAction())
+        }));
+    }
+
+    protected static class StylesTable extends JTable {
+
+        public StylesTable(TableModel dm) {
+            super(dm);
+        }
+
+        public void scrollToVisible(int row, int col) {
+            if (!(getParent() instanceof JViewport))
+                return;
+            JViewport viewport = (JViewport) getParent();
+            Rectangle rect = getCellRect(row, col, true);
+            Point pt = viewport.getViewPosition();
+            rect.setLocation(rect.x - pt.x, rect.y - pt.y);
+            viewport.scrollRectToVisible(rect);
+        }
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java	(revision 4362)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java	(revision 4363)
@@ -670,9 +670,8 @@
     }
 
-    protected void createLayout(Component data, boolean scroll, Collection<SideButton> buttons) {
+    protected Component createLayout(Component data, boolean scroll, Collection<SideButton> buttons) {
         if(scroll)
-            add(new JScrollPane(data), BorderLayout.CENTER);
-        else
-            add(data, BorderLayout.CENTER);
+            data = new JScrollPane(data);
+        add(data, BorderLayout.CENTER);
         if(buttons != null && buttons.size() != 0) {
             buttonsPanel = new JPanel(Main.pref.getBoolean("dialog.align.left", false)
@@ -686,4 +685,5 @@
             }
         }
+        return data;
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(revision 4362)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java	(revision 4363)
@@ -5,5 +5,4 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import java.awt.BorderLayout;
 import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
@@ -15,4 +14,5 @@
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Enumeration;
@@ -24,7 +24,5 @@
 import javax.swing.JMenuItem;
 import javax.swing.JOptionPane;
-import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
-import javax.swing.JScrollPane;
 import javax.swing.SwingUtilities;
 import javax.swing.event.TreeSelectionEvent;
@@ -108,25 +106,25 @@
         tree.addTreeSelectionListener(new SelectionWatch());
 
-        add(new JScrollPane(tree), BorderLayout.CENTER);
-
-        JPanel buttonPanel = new JPanel(new GridLayout(1, 3));
-
+        List<SideButton> buttons = new LinkedList<SideButton>();
         selectButton = new SideButton(marktr("Select"), "select", "Validator",
                 tr("Set the selected elements on the map to the selected items in the list above."), this);
         selectButton.setEnabled(false);
-        buttonPanel.add(selectButton);
-        buttonPanel.add(new SideButton(Main.main.validator.validateAction), "refresh");
+        buttons.add(selectButton);
+
+        buttons.add(new SideButton(Main.main.validator.validateAction));
+
         fixButton = new SideButton(marktr("Fix"), "fix", "Validator", tr("Fix the selected issue."), this);
         fixButton.setEnabled(false);
-        buttonPanel.add(fixButton);
+        buttons.add(fixButton);
+
         if (Main.pref.getBoolean(ValidatorPreference.PREF_USE_IGNORE, true)) {
             ignoreButton = new SideButton(marktr("Ignore"), "delete", "Validator",
                     tr("Ignore the selected issue next time."), this);
             ignoreButton.setEnabled(false);
-            buttonPanel.add(ignoreButton);
+            buttons.add(ignoreButton);
         } else {
             ignoreButton = null;
         }
-        add(buttonPanel, BorderLayout.SOUTH);
+        createLayout(tree, true, buttons);
     }
 
@@ -466,9 +464,4 @@
             }
             selectButton.setEnabled(false);
-
-            if (e.getSource() instanceof JScrollPane) {
-                System.out.println(e.getSource());
-                return;
-            }
 
             boolean hasFixes = setSelection(null, false);
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 4362)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 4363)
@@ -759,13 +759,4 @@
         }
 
-        DblClickWatch dblClickWatch = new DblClickWatch();
-        propertyTable.addMouseListener(dblClickWatch);
-        membershipTable.addMouseListener(dblClickWatch);
-        JScrollPane scrollPane = new JScrollPane(bothTables);
-        scrollPane.addMouseListener(dblClickWatch);
-
-        selectSth.setPreferredSize(scrollPane.getSize());
-        presets.setSize(scrollPane.getSize());
-
         // -- add action and shortcut
         this.btnAdd = new SideButton(addAction);
@@ -792,7 +783,15 @@
         getActionMap().put("delete", deleteAction);
 
-        createLayout(scrollPane, false, Arrays.asList(new SideButton[] {
+        JScrollPane scrollPane = (JScrollPane) createLayout(bothTables, true, Arrays.asList(new SideButton[] {
             this.btnAdd, this.btnEdit, this.btnDel
         }));
+
+        DblClickWatch dblClickWatch = new DblClickWatch();
+        propertyTable.addMouseListener(dblClickWatch);
+        membershipTable.addMouseListener(dblClickWatch);
+        scrollPane.addMouseListener(dblClickWatch);
+
+        selectSth.setPreferredSize(scrollPane.getSize());
+        presets.setSize(scrollPane.getSize());
 
         // -- help action
