Index: /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java	(revision 8357)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java	(revision 8358)
@@ -10,4 +10,5 @@
 import java.awt.GridBagLayout;
 import java.awt.GridLayout;
+import java.awt.Insets;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
@@ -34,4 +35,6 @@
 import java.util.TreeSet;
 
+import javax.swing.AbstractButton;
+import javax.swing.BorderFactory;
 import javax.swing.ButtonGroup;
 import javax.swing.Icon;
@@ -695,4 +698,5 @@
                     aibutton.setMargin(new java.awt.Insets(0,0,0,0));
                     aibutton.setFocusable(false);
+                    saveHorizontalSpace(aibutton);
                     bg.add(aibutton);
                     try {
@@ -731,4 +735,5 @@
                     }
                 });
+                saveHorizontalSpace(releasebutton);
                 pnl.add(releasebutton, GBC.eol());
                 value = pnl;
@@ -737,4 +742,13 @@
             p.add(value, GBC.eol().fill(GBC.HORIZONTAL));
             return true;
+        }
+
+        private static void saveHorizontalSpace(AbstractButton button) {
+            Insets insets = button.getBorder().getBorderInsets(button);
+            // Ensure the current look&feel does not waste horizontal space (as seen in Nimbus & Aqua)
+            if (insets != null && insets.left+insets.right > insets.top+insets.bottom) {
+                int min = Math.min(insets.top, insets.bottom);
+                button.setBorder(BorderFactory.createEmptyBorder(insets.top, min, insets.bottom, min));
+            }
         }
 
