diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java
index a6afb7bf64a63e70fd5b79e175a4ab6e099e2adf..27ecfe1334be310b5a97ec7888c9a4004db616b2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractBrowserGrid.java
@@ -65,6 +65,7 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.AsyncCallbackWithProgressBar;
 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;
@@ -270,19 +271,19 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
 
         addRefreshDisplaySettingsListener();
         configureLoggingBetweenEvents(logID);
-        
+
         grid.addListener(Events.HeaderContextMenu, new Listener<GridEvent<ModelData>>()
-        {
-            public void handleEvent(final GridEvent<ModelData> ge)
             {
-                Menu menu = ge.getMenu();
-                int itemCount = menu.getItemCount();
-                for (int i = 2; i < itemCount; i++)
+                public void handleEvent(final GridEvent<ModelData> ge)
                 {
-                    menu.remove(menu.getItem(2));
+                    Menu menu = ge.getMenu();
+                    int itemCount = menu.getItemCount();
+                    for (int i = 2; i < itemCount; i++)
+                    {
+                        menu.remove(menu.getItem(2));
+                    }
                 }
-            }
-        });
+            });
     }
 
     private ICellListener<T> createShowEntityViewerLinkClickListener()
@@ -1724,6 +1725,14 @@ public abstract class AbstractBrowserGrid<T/* Entity */, M extends BaseEntityMod
         return new DeletionCallback(viewContext, invoker);
     }
 
+    /** Creates deletion callback that refreshes the grid with additional progress bar. */
+    protected final AsyncCallback<Void> createDeletionCallbackWithProgressBar(
+            IBrowserGridActionInvoker invoker, String progressMessage)
+    {
+        final AbstractAsyncCallback<Void> deletionCallback = createDeletionCallback(invoker);
+        return AsyncCallbackWithProgressBar.decorate(deletionCallback, progressMessage);
+    }
+
     /** Deletion callback that refreshes the grid. */
     private static final class DeletionCallback extends AbstractAsyncCallback<Void>
     {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserGrid.java
index 86007b3a7d8a7d542c51b16f7575e0707f2a3d2b..795ec21fee8f7f177b0c36c89b89a00bc629de67 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserGrid.java
@@ -400,8 +400,8 @@ public class SampleBrowserGrid extends
                         IBrowserGridActionInvoker invoker)
                 {
                     return new SampleListDeletionConfirmationDialog(viewContext, samples,
-                            createDeletionCallback(invoker), getDisplayedAndSelectedItemsAction()
-                                    .execute());
+                            createDeletionCallbackWithProgressBar(invoker, "Deleting samples..."),
+                            getDisplayedAndSelectedItemsAction().execute());
                 }
             });
         changeButtonTitleOnSelectedItems(deleteButton, deleteAllTitle, deleteTitle);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleListDeletionConfirmationDialog.java
index 687179ef50727200f4ba83c00ff66a029055ec33..d3b34add2e528e641b125f2503ec980c9d647077 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleListDeletionConfirmationDialog.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleListDeletionConfirmationDialog.java
@@ -19,6 +19,7 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample
 import java.util.List;
 
 import com.extjs.gxt.ui.client.widget.form.RadioGroup;
+import com.google.gwt.user.client.rpc.AsyncCallback;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
@@ -38,7 +39,7 @@ public final class SampleListDeletionConfirmationDialog extends
 
     private final IViewContext<ICommonClientServiceAsync> viewContext;
 
-    private final AbstractAsyncCallback<Void> callback;
+    private final AsyncCallback<Void> callback;
 
     private final DisplayedAndSelectedSamples selectedAndDisplayedItemsOrNull;
 
@@ -46,8 +47,7 @@ public final class SampleListDeletionConfirmationDialog extends
 
     public SampleListDeletionConfirmationDialog(
             IViewContext<ICommonClientServiceAsync> viewContext, List<Sample> data,
-            AbstractAsyncCallback<Void> callback,
-            DisplayedAndSelectedSamples selectedAndDisplayedItems)
+            AsyncCallback<Void> callback, DisplayedAndSelectedSamples selectedAndDisplayedItems)
     {
         super(viewContext, data, true);
         this.viewContext = viewContext;