Index: src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java
===================================================================
--- src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java	(revision 4574)
+++ src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java	(working copy)
@@ -26,7 +26,6 @@
 import java.util.List;
 import java.util.Map;
 
-import javax.swing.AbstractAction;
 import javax.swing.Action;
 import javax.swing.DefaultListCellRenderer;
 import javax.swing.DefaultListModel;
@@ -62,6 +61,7 @@
 import org.openstreetmap.josm.actions.ParameterizedAction;
 import org.openstreetmap.josm.actions.ParameterizedActionDecorator;
 import org.openstreetmap.josm.gui.tagging.TaggingPreset;
+import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
 
@@ -366,6 +366,28 @@
 
     }
 
+    private static class ToolbarPopupMenu extends JPopupMenu {
+        public ToolbarPopupMenu(final ActionDefinition action) {
+            
+            add(tr("Remove from toolbar",action.getDisplayName()))
+                    .addActionListener(new ActionListener() {
+                        public void actionPerformed(ActionEvent e) {
+                            Collection<String> t = new LinkedList<String>(getToolString());
+                            ActionParser parser = new ActionParser(null);
+                            // get text definition of current action
+                            String res = parser.saveAction(action);
+                            // remove the button from toolbar preferences
+                            t.remove( res );
+                            Main.pref.putCollection("toolbar", t);
+                            Main.toolbar.refreshToolbarControl();                
+                        }
+            });
+            // TODO: How to show specific tab of preferences - toolbar settings?
+            add(tr("Configure toolbar")).addActionListener(Main.main.menu.preferences);
+            
+        }
+    }
+
     /**
      * Key: Registered name (property "toolbar" of action).
      * Value: The action to execute.
@@ -920,6 +942,7 @@
                 Icon i = action.getDisplayIcon();
                 if (i != null)
                     b.setIcon(i);
+                b.addMouseListener(new PopupMenuLauncher( new ToolbarPopupMenu(action)));
             }
         }
         control.setVisible(control.getComponentCount() != 0);
