Index: src/org/openstreetmap/josm/actions/search/SearchAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 4523)
+++ src/org/openstreetmap/josm/actions/search/SearchAction.java	(working copy)
@@ -13,11 +13,13 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
+import javax.swing.Action;
 import javax.swing.ButtonGroup;
 import javax.swing.JCheckBox;
 import javax.swing.JLabel;
@@ -30,6 +32,7 @@
 import org.openstreetmap.josm.actions.ActionParameter.SearchSettingsActionParameter;
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.actions.ParameterizedAction;
+import org.openstreetmap.josm.actions.ParameterizedActionDecorator;
 import org.openstreetmap.josm.actions.search.SearchCompiler.ParseError;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Filter;
@@ -185,6 +188,7 @@
         JCheckBox allElements = new JCheckBox(tr("all objects"), initialValues.allElements);
         allElements.setToolTipText(tr("Also include incomplete and deleted objects in search."));
         final JCheckBox regexSearch   = new JCheckBox(tr("regular expression"), initialValues.regexSearch);
+        final JCheckBox addOnToolbar  = new JCheckBox(tr("Add temporary button"), false);
 
         JPanel top = new JPanel(new GridBagLayout());
         top.add(label, GBC.std().insets(0, 0, 5, 0));
@@ -197,6 +201,7 @@
         left.add(caseSensitive, GBC.eol());
         left.add(allElements, GBC.eol());
         left.add(regexSearch, GBC.eol());
+        left.add(addOnToolbar, GBC.eol());
 
         JPanel right = new JPanel();
         DescriptionTextBuilder descriptionText = new DescriptionTextBuilder();
@@ -276,7 +281,7 @@
         int result = dialog.getValue();
 
         if(result != 1) return null;
-
+        
         // User pressed OK - let's perform the search
         SearchMode mode = replace.isSelected() ? SearchAction.SearchMode.replace
                 : (add.isSelected() ? SearchAction.SearchMode.add
@@ -286,6 +291,13 @@
         initialValues.caseSensitive = caseSensitive.isSelected();
         initialValues.allElements = allElements.isSelected();
         initialValues.regexSearch = regexSearch.isSelected();
+        if (addOnToolbar.isSelected()) {
+            Map<String, Object> parameters=new HashMap<String, Object>();
+            parameters.put("searchExpression",initialValues);
+            Action action = new ParameterizedActionDecorator((ParameterizedAction) 
+                new SearchAction(), parameters);
+            Main.toolbar.control.add(action);
+        }
         return initialValues;
     }
 
