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 df430166e4cdaf34d0c0f662fe8bf90052538369..a2dca0fa9ac73cadd0cae1bae3710d848fd59f3c 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
@@ -383,6 +383,8 @@ public abstract class Dict
 
     public static final String MATCH_ANY = "match_any";
 
+    public static final String BUTTON_CHANGE_QUERY = "button_change_query";
+
     //
     // Unclassified
     //
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/CriteriaWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/CriteriaWidget.java
index 0574ed092f2984812003d5f8b64574b411c0c84d..f20ad9e75f34fbdfe8af496eb9ff69b7b442cd7e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/CriteriaWidget.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/CriteriaWidget.java
@@ -34,6 +34,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SearchCriteria;
  */
 public class CriteriaWidget extends VerticalPanel
 {
+
     private final List<CriterionWidget> criteriaWidgets;
 
     private final MatchCriteriaRadio matchRadios;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/CriterionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/CriterionWidget.java
index 1475580896b178caa00bb68d15fc5df8c83c9043..f91b859416fa5abe4149a91ebaaddb0556ceaac3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/CriterionWidget.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/CriterionWidget.java
@@ -110,6 +110,9 @@ public class CriterionWidget extends HorizontalPanel
         return idSuffix + "_" + generatedChildren;
     }
 
+    /**
+     * Adds a new {@link CriterionWidget} coping data from given the <em>name field</em>.
+     */
     private void createNew()
     {
         CriterionWidget newCriterion =
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetSearchHitGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetSearchHitGrid.java
index 4c1cf08ff94ade25bed77051c6630bf17947c11d..c40d6574a756195dea5089ac2e9b331ed53ea812 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetSearchHitGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/DataSetSearchHitGrid.java
@@ -28,6 +28,8 @@ import com.extjs.gxt.ui.client.widget.button.Button;
 import com.extjs.gxt.ui.client.widget.button.ButtonBar;
 import com.extjs.gxt.ui.client.widget.layout.FitData;
 import com.extjs.gxt.ui.client.widget.layout.FitLayout;
+import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
+import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
 import com.extjs.gxt.ui.client.widget.toolbar.TextToolItem;
 import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
 
@@ -36,13 +38,10 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAs
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.AbstractEntityModel;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.DataSetSearchHitModel;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractBrowserGrid;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ColumnDefsAndConfigs;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractSimpleBrowserGrid;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.DisposableComponent;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IColumnDefinitionKind;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IColumnDefinitionUI;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DataSetSearchHit;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.IColumnDefinition;
@@ -51,12 +50,12 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteri
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SearchCriteria;
 
 /**
- * Grid with data set search hits.
+ * Grid with data set search results.
  * 
  * @author Izabela Adamczyk
  */
 public class DataSetSearchHitGrid extends
-        AbstractBrowserGrid<DataSetSearchHit, DataSetSearchHitModel>
+        AbstractSimpleBrowserGrid<DataSetSearchHit, DataSetSearchHitModel>
 {
     // browser consists of the grid and the paging toolbar
     public static final String BROWSER_ID =
@@ -70,34 +69,21 @@ public class DataSetSearchHitGrid extends
             final IViewContext<ICommonClientServiceAsync> viewContext)
     {
         DataSetSearchHitGrid grid = new DataSetSearchHitGrid(viewContext);
-        return grid.asDisposableWithToolbar(new DataSetSearchToolbar(grid));
+        return grid.asDisposableWithToolbar(new DataSetSearchToolbar(grid, viewContext
+                .getMessage(Dict.BUTTON_CHANGE_QUERY)));
     }
 
     private SearchCriteria criteria;
 
     private DataSetSearchHitGrid(IViewContext<ICommonClientServiceAsync> viewContext)
     {
-        super(viewContext, GRID_ID, true, true);
+        super(viewContext, BROWSER_ID, GRID_ID);
         searchWindow = new DataSetSearchWindow();
 
     }
 
-    private static class DataSetSearchToolbar extends ToolBar
-    {
-        public DataSetSearchToolbar(final DataSetSearchHitGrid grid)
-        {
-            add(new TextToolItem("Change Query", new SelectionListener<ToolBarEvent>()
-                {
-                    @Override
-                    public void componentSelected(ToolBarEvent ce)
-                    {
-                        grid.showSearchDialog();
-                    }
-                }));
-        }
-    }
-
-    private IColumnDefinitionKind<DataSetSearchHit>[] getStaticColumnsDefinition()
+    @Override
+    protected IColumnDefinitionKind<DataSetSearchHit>[] getStaticColumnsDefinition()
     {
         return DataSetSearchHitColDefKind.values();
     }
@@ -143,23 +129,61 @@ public class DataSetSearchHitGrid extends
             showSearchDialog();
             return;
         }
-        super.refresh(criteria.toString(), false);
+        super.refresh();
     }
 
+    private void showSearchDialog()
+    {
+        searchWindow.show();
+    }
+
+    //
+    // Helper classes
+    //
+
+    /**
+     * Contains a button opening {@link DataSetSearchWindow}.
+     */
+    private static class DataSetSearchToolbar extends ToolBar
+    {
+        public DataSetSearchToolbar(final DataSetSearchHitGrid grid, String buttonName)
+        {
+            add(new FillToolItem());
+            add(new SeparatorToolItem());
+            add(new TextToolItem(buttonName, new SelectionListener<ToolBarEvent>()
+                {
+                    @Override
+                    public void componentSelected(ToolBarEvent ce)
+                    {
+                        grid.showSearchDialog();
+                    }
+                }));
+        }
+    }
+
+    /**
+     * Shows {@link CriteriaWidget}, allowing to specify search criteria.
+     * 
+     * @author Izabela Adamczyk
+     */
     private class DataSetSearchWindow extends Dialog
     {
-        static final int WIDTH = 550;
+        private static final int MARGIN = 5;
+
+        private static final int HEIGHT = 400;
+
+        private static final int WIDTH = 550;
 
         private CriteriaWidget criteriaWidget;
 
         public DataSetSearchWindow()
         {
-            setSize(WIDTH, 400);
+            setSize(WIDTH, HEIGHT);
             setModal(true);
             setScrollMode(Scroll.AUTOY);
             setLayout(new FitLayout());
             setResizable(false);
-            add(criteriaWidget = new CriteriaWidget(viewContext), new FitData(5));
+            add(criteriaWidget = new CriteriaWidget(viewContext), new FitData(MARGIN));
             final ButtonBar bar = new ButtonBar();
             bar.add(new Button(viewContext.getMessage(Dict.BUTTON_CANCEL))
                 {
@@ -178,7 +202,7 @@ public class DataSetSearchHitGrid extends
                         criteriaWidget.reset();
                     }
                 });
-            bar.add(new Button("Search")
+            bar.add(new Button(viewContext.getMessage(Dict.SEARCH_BUTTON))
                 {
                     @Override
                     protected void onClick(ComponentEvent ce)
@@ -193,29 +217,4 @@ public class DataSetSearchHitGrid extends
         }
     }
 
-    private void showSearchDialog()
-    {
-        searchWindow.show();
-    }
-
-    @Override
-    protected ColumnDefsAndConfigs<DataSetSearchHit> createColumnsDefinition()
-    {
-        IColumnDefinitionKind<DataSetSearchHit>[] colDefKinds = getStaticColumnsDefinition();
-        List<IColumnDefinitionUI<DataSetSearchHit>> colDefs =
-                AbstractEntityModel.createColumnsDefinition(colDefKinds, viewContext);
-        return ColumnDefsAndConfigs.create(colDefs);
-    }
-
-    @Override
-    protected boolean isRefreshEnabled()
-    {
-        return false;
-    }
-
-    @Override
-    protected void showEntityViewer(DataSetSearchHitModel modelData)
-    {
-        // do nothing - no viewer for datasets is available yet
-    }
 }
\ No newline at end of file
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 3ba1bd43e6233f12cd8dd485abf0bb21a472079b..60a2cff7acc087e6b92c9928844bfd419116392b 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
@@ -208,6 +208,7 @@ var common = {
  location: "Location",
  match_all: "Match all criteria",
  match_any: "Match any criteria",
+ button_change_query : "Change Query",
  
   // LAST LINE: KEEP IT AT THE END
   lastline: "" // we need a line without a comma