diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java
index 1ffbb3e1b101824b045186af5b5174c61718b76c..e8e7797ca7ac77444b4e4a07b7c3e5c288c7e896 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/Dict.java
@@ -803,6 +803,8 @@ public abstract class Dict
 
     public static final String APPLY_FILTER = "apply_filter";
 
+    public static final String RESET_FILTER = "reset_filter";
+
     public static final String ADD_NEW_FILTER = "add_new_filter";
 
     public static final String HOW_TO_ADDRESS = "how_to_address";
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/filter/FilterToolbar.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/filter/FilterToolbar.java
index 8857e9aa6b7d4bc6429ccabc643de2d663e04566..a9b88ee1b8f37f3ec8c253c104e0cc5aa7156d40 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/filter/FilterToolbar.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/filter/FilterToolbar.java
@@ -13,6 +13,7 @@ import com.extjs.gxt.ui.client.event.SelectionChangedListener;
 import com.extjs.gxt.ui.client.event.SelectionListener;
 import com.extjs.gxt.ui.client.widget.Component;
 import com.extjs.gxt.ui.client.widget.LayoutContainer;
+import com.extjs.gxt.ui.client.widget.form.Field;
 import com.extjs.gxt.ui.client.widget.form.TriggerField;
 import com.extjs.gxt.ui.client.widget.layout.FillLayout;
 import com.extjs.gxt.ui.client.widget.toolbar.AdapterToolItem;
@@ -43,6 +44,8 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
 {
     static final String APPLY_ID = "apply_button";
 
+    static final String RESET_ID = "reset_button";
+
     private final List<PagingColumnFilter<T>> columnFilters;
 
     private final LayoutContainer filterContainer;
@@ -53,6 +56,8 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
 
     private final TextToolItem applyTool;
 
+    private final TextToolItem resetTool;
+
     public FilterToolbar(IViewContext<ICommonClientServiceAsync> viewContext, String gridId,
             IDisplayTypeIDProvider displayTypeIDProvider,
             final List<PagingColumnFilter<T>> filterWidgets, IDelegatedAction applyFiltersAction)
@@ -70,14 +75,18 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
         applyTool = new TextToolItem(viewContext.getMessage(Dict.APPLY_FILTER));
         applyTool.setId(createId(APPLY_ID, gridId));
         applyTool.setEnabled(false);
+        applyTool.hide();
         add(applyTool);
+        resetTool = new TextToolItem(viewContext.getMessage(Dict.RESET_FILTER));
+        resetTool.setId(createId(RESET_ID, gridId));
+        add(resetTool);
 
         filterSelectionWidget.addSelectionChangedListener(new SelectionChangedListener<ModelData>()
             {
                 @Override
                 public void selectionChanged(SelectionChangedEvent<ModelData> se)
                 {
-                    updateFilterContainer();
+                    updateFilterFields();
                     apply();
                 }
 
@@ -90,6 +99,15 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
                     apply();
                 }
             });
+        resetTool.addSelectionListener(new SelectionListener<ComponentEvent>()
+            {
+                @Override
+                public void componentSelected(ComponentEvent ce)
+                {
+                    resetFilterFields();
+                    apply();
+                }
+            });
 
     }
 
@@ -102,7 +120,7 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
     {
         this.columnFilters.clear();
         this.columnFilters.addAll(newFilters);
-        updateFilterContainer();
+        updateFilterFields();
     }
 
     public boolean isColumnFilterSelected()
@@ -127,7 +145,6 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
             Set<ParameterWithValue> parameters = new HashSet<ParameterWithValue>();
             for (Component field : filterContainer.getItems())
             {
-
                 parameters.add(((CustomFilterParameterWidget) field).getParameterWithValue());
             }
             info.setParameters(parameters);
@@ -146,24 +163,38 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
         filterSelectionWidget.update(observedModifications);
     }
 
-    private void updateFilterContainer()
+    private void updateFilterFields()
     {
+        filterContainer.removeAll();
         Filter filter = filterSelectionWidget.tryGetSelected();
-        if (filter != null)
+        if (isColumnFilterSelected())
         {
-            filterContainer.removeAll();
-            if (filter.getName().equals(Filter.COLUMN_FILTER))
+            for (PagingColumnFilter<T> filterWidget : columnFilters)
             {
-                for (PagingColumnFilter<T> filterWidget : FilterToolbar.this.columnFilters)
-                {
-                    filterContainer.add(filterWidget);
-                }
-            } else
+                filterContainer.add(filterWidget);
+            }
+            applyTool.hide();
+        } else
+        {
+            for (String parameter : filter.getParameters())
             {
-                for (String parameter : filter.getParameters())
-                {
-                    filterContainer.add(new CustomFilterParameterWidget(parameter));
-                }
+                filterContainer.add(new CustomFilterParameterWidget(parameter));
+            }
+            applyTool.show();
+            updateApplyToolEnabledState();
+        }
+        resetTool.setVisible(filterContainer.getItemCount() > 0);
+    }
+
+    @SuppressWarnings("unchecked")
+    private void resetFilterFields()
+    {
+        for (Component field : filterContainer.getItems())
+        {
+            if (field instanceof Field)
+            {
+                Field f = (Field) field;
+                f.reset();
             }
         }
     }
@@ -174,7 +205,7 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
         applyFiltersAction.execute();
     }
 
-    private void updateApplyTool()
+    private void updateApplyToolEnabledState()
     {
         applyTool.setEnabled(isValid());
     }
@@ -186,7 +217,6 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
             boolean valid = true;
             for (Component field : filterContainer.getItems())
             {
-
                 CustomFilterParameterWidget f = (CustomFilterParameterWidget) field;
                 valid = f.isValid() && valid;
             }
@@ -217,7 +247,7 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
         protected void onKeyUp(FieldEvent fe)
         {
             super.onKeyUp(fe);
-            updateApplyTool();
+            updateApplyToolEnabledState();
         }
 
         public ParameterWithValue getParameterWithValue()
@@ -230,7 +260,7 @@ public class FilterToolbar<T> extends ToolBar implements IDatabaseModificationOb
         {
             super.onTriggerClick(ce);
             setValue(null);
-            updateApplyTool();
+            updateApplyToolEnabledState();
         }
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js
index 15258fc128df37937da5c5ad52c07b5e84fe8427..1030a1792a4ebaed18b4e5cddac1ff6a6b5bb43e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/common-dictionary.js
@@ -508,6 +508,7 @@ samples_radio_group_label: "Samples",
  grid_settings_title: "Table settings",
  custom_filters: "Custom filters",
  apply_filter: "Apply",
+ reset_filter: "Reset",
  add_new_filter: "Add a New Filter",
  how_to_address: "How To Address", 
  insert_columns: "Insert Columns",