diff --git a/openbis_ng_ui/src/js/components/common/grid/GridController.js b/openbis_ng_ui/src/js/components/common/grid/GridController.js
index 6923f5982c97ae93f193667651adb0f3dd68e214..69927e4df5032e9bf5bd73d67e0b1e8242d97922 100644
--- a/openbis_ng_ui/src/js/components/common/grid/GridController.js
+++ b/openbis_ng_ui/src/js/components/common/grid/GridController.js
@@ -86,19 +86,23 @@ export default class GridController {
       newColumn.visible = newColumnsVisibility[newColumn.name]
     })
 
-    newColumns = newColumns.sort((c1, c2) => {
+    this._sortColumns(newColumns, newColumnsSorting)
+
+    return { newColumns, newColumnsVisibility, newColumnsSorting }
+  }
+
+  _sortColumns(columns, columnsSorting) {
+    columns.sort((c1, c2) => {
       const c1Index = _.findIndex(
-        newColumnsSorting,
+        columnsSorting,
         columnName => columnName === c1.name
       )
       const c2Index = _.findIndex(
-        newColumnsSorting,
+        columnsSorting,
         columnName => columnName === c2.name
       )
       return c1Index - c2Index
     })
-
-    return { newColumns, newColumnsVisibility, newColumnsSorting }
   }
 
   _initColumn(column) {
@@ -462,7 +466,11 @@ export default class GridController {
       newColumnsSorting.splice(sourceSorting, 1)
       newColumnsSorting.splice(destinationSorting, 0, sourceColumn.name)
 
+      const newColumns = [...state.columns]
+      this._sortColumns(newColumns, newColumnsSorting)
+
       return {
+        columns: newColumns,
         columnsSorting: newColumnsSorting
       }
     })