diff --git a/src/main/java/org/olat/course/member/CourseBusinessGroupListController.java b/src/main/java/org/olat/course/member/CourseBusinessGroupListController.java
index 115c2f63d5484c2dd4233191dc9ce7d98ad9cf38..c5c5287d9b8cbb6d0a7c6519055eecf3985fac0b 100644
--- a/src/main/java/org/olat/course/member/CourseBusinessGroupListController.java
+++ b/src/main/java/org/olat/course/member/CourseBusinessGroupListController.java
@@ -80,7 +80,7 @@ public class CourseBusinessGroupListController extends AbstractBusinessGroupList
 	private SelectBusinessGroupController selectController;
 	
 	public CourseBusinessGroupListController(UserRequest ureq, WindowControl wControl, RepositoryEntry re) {
-		super(ureq, wControl, "group_list", false, false, re);
+		super(ureq, wControl, "group_list", false, false, "course", re);
 		this.re = re;
 	}
 
diff --git a/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java
index 1ab9d88a5fb0bd5e06fda6d00a122159dab07f40..a2ecb8e17753440c3d211477d6aef9c7689ee38a 100644
--- a/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java
+++ b/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java
@@ -172,13 +172,14 @@ public abstract class AbstractBusinessGroupListController extends FormBasicContr
 	
 	private BusinessGroupViewFilter filter;
 	private Object userObject;
+	private final String prefsKey;
 	
-	public AbstractBusinessGroupListController(UserRequest ureq, WindowControl wControl, String page) {
-		this(ureq, wControl, page, false, false, null);
+	public AbstractBusinessGroupListController(UserRequest ureq, WindowControl wControl, String page, String prefsKey) {
+		this(ureq, wControl, page, false, false, prefsKey, null);
 	}
 	
 	public AbstractBusinessGroupListController(UserRequest ureq, WindowControl wControl, String page,
-			boolean showAdminTools, boolean startExtendedSearch, Object userObject) {
+			boolean showAdminTools, boolean startExtendedSearch, String prefsKey, Object userObject) {
 		super(ureq, wControl, page);
 		setTranslator(Util.createPackageTranslator(AbstractBusinessGroupListController.class, ureq.getLocale(), getTranslator()));
 
@@ -187,6 +188,7 @@ public abstract class AbstractBusinessGroupListController extends FormBasicContr
 		this.showAdminTools = showAdminTools && admin;
 		this.userObject = userObject;
 		this.startExtendedSearch = startExtendedSearch;
+		this.prefsKey = prefsKey;
 
 		initForm(ureq);
 	}
@@ -201,6 +203,7 @@ public abstract class AbstractBusinessGroupListController extends FormBasicContr
 		FlexiTableSortOptions options = new FlexiTableSortOptions();
 		options.setFromColumnModel(true);
 		tableEl.setSortSettings(options);
+		tableEl.setAndLoadPersistedPreferences(ureq, "gbg-list-" + prefsKey);
 		
 		searchCtrl = new BusinessGroupSearchController(ureq, getWindowControl(), isAdmin(), true, showAdminTools, mainForm);
 		searchCtrl.setEnabled(false);
diff --git a/src/main/java/org/olat/group/ui/main/BusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/BusinessGroupListController.java
index 8b309696f177d4a841df10b703b1ea745c79a30c..64097229cf8fadc7859fea25834c3b7f517a68ea 100644
--- a/src/main/java/org/olat/group/ui/main/BusinessGroupListController.java
+++ b/src/main/java/org/olat/group/ui/main/BusinessGroupListController.java
@@ -31,8 +31,8 @@ import org.olat.group.model.SearchBusinessGroupParams;
  */
 public class BusinessGroupListController extends AbstractBusinessGroupListController {
 	
-	public BusinessGroupListController(UserRequest ureq, WindowControl wControl) {
-		super(ureq, wControl, "group_list");
+	public BusinessGroupListController(UserRequest ureq, WindowControl wControl, String prefsKey) {
+		super(ureq, wControl, "group_list", prefsKey);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/group/ui/main/FavoritBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/FavoritBusinessGroupListController.java
index 5a5d117d8756f9775702b195445c622e928e4847..cc61890433281d2d4c156c5a72e419559873ded0 100644
--- a/src/main/java/org/olat/group/ui/main/FavoritBusinessGroupListController.java
+++ b/src/main/java/org/olat/group/ui/main/FavoritBusinessGroupListController.java
@@ -31,8 +31,8 @@ import org.olat.group.model.SearchBusinessGroupParams;
  */
 public class FavoritBusinessGroupListController extends AbstractBusinessGroupListController {
 
-	public FavoritBusinessGroupListController(UserRequest ureq, WindowControl wControl) {
-		super(ureq, wControl, "group_list");
+	public FavoritBusinessGroupListController(UserRequest ureq, WindowControl wControl, String prefsKey) {
+		super(ureq, wControl, "group_list", prefsKey);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/group/ui/main/OpenBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/OpenBusinessGroupListController.java
index c8022d803cac9cba967280bb0ff2e4a3eae74419..0bc11b54d49f58b4d37cc498b8d7f33ab442491a 100644
--- a/src/main/java/org/olat/group/ui/main/OpenBusinessGroupListController.java
+++ b/src/main/java/org/olat/group/ui/main/OpenBusinessGroupListController.java
@@ -41,8 +41,8 @@ import org.olat.group.ui.main.BusinessGroupFlexiTableModel.Cols;
  */
 public class OpenBusinessGroupListController extends AbstractBusinessGroupListController {
 	
-	public OpenBusinessGroupListController(UserRequest ureq, WindowControl wControl) {
-		super(ureq, wControl, "group_list");
+	public OpenBusinessGroupListController(UserRequest ureq, WindowControl wControl, String prefsKey) {
+		super(ureq, wControl, "group_list", prefsKey);
 	}
 	
 	@Override
diff --git a/src/main/java/org/olat/group/ui/main/OverviewBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/OverviewBusinessGroupListController.java
index 22e000c0e337d9fe6d394cf9a3ef1e734d4a5c86..425fc9cc9338f23708d468604d18b9349f9103cf 100644
--- a/src/main/java/org/olat/group/ui/main/OverviewBusinessGroupListController.java
+++ b/src/main/java/org/olat/group/ui/main/OverviewBusinessGroupListController.java
@@ -168,7 +168,7 @@ public class OverviewBusinessGroupListController extends BasicController impleme
 		OLATResourceable ores = OresHelper.createOLATResourceableInstance("Favorits", 0l);
 		ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores));
 		WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl());
-		favoritGroupsCtrl = new FavoritBusinessGroupListController(ureq, bwControl);
+		favoritGroupsCtrl = new FavoritBusinessGroupListController(ureq, bwControl, "favorit");
 		listenTo(favoritGroupsCtrl);
 		
 		favoritGroupsCtrl.doDefaultSearch();
@@ -183,7 +183,7 @@ public class OverviewBusinessGroupListController extends BasicController impleme
 		OLATResourceable ores = OresHelper.createOLATResourceableInstance("AllGroups", 0l);
 		ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores));
 		WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl());
-		myGroupsCtrl = new BusinessGroupListController(ureq, bwControl);
+		myGroupsCtrl = new BusinessGroupListController(ureq, bwControl, "my");
 		listenTo(myGroupsCtrl);
 
 		myGroupsCtrl.doDefaultSearch();
@@ -198,7 +198,7 @@ public class OverviewBusinessGroupListController extends BasicController impleme
 		OLATResourceable ores = OresHelper.createOLATResourceableInstance("OwnedGroups", 0l);
 		ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores));
 		WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl());
-		openGroupsCtrl = new OpenBusinessGroupListController(ureq, bwControl);
+		openGroupsCtrl = new OpenBusinessGroupListController(ureq, bwControl, "public");
 		listenTo(openGroupsCtrl);
 
 		openGroupsCtrl.doDefaultSearch();
@@ -213,7 +213,7 @@ public class OverviewBusinessGroupListController extends BasicController impleme
 		OLATResourceable ores = OresHelper.createOLATResourceableInstance("Search", 0l);
 		ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores));
 		WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl());
-		searchGroupsCtrl = new SearchBusinessGroupListController(ureq, bwControl);
+		searchGroupsCtrl = new SearchBusinessGroupListController(ureq, bwControl, "search");
 		listenTo(searchGroupsCtrl);
 
 		mainVC.put("groupList", searchGroupsCtrl.getInitialComponent());
diff --git a/src/main/java/org/olat/group/ui/main/SearchBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/SearchBusinessGroupListController.java
index dd9c02504508d3ff4e1e07d4a04cfd678fd20884..406799369932bcac1a11af3ccab65a16f9fd9ff4 100644
--- a/src/main/java/org/olat/group/ui/main/SearchBusinessGroupListController.java
+++ b/src/main/java/org/olat/group/ui/main/SearchBusinessGroupListController.java
@@ -31,8 +31,8 @@ import org.olat.group.model.SearchBusinessGroupParams;
  */
 public class SearchBusinessGroupListController extends AbstractBusinessGroupListController {
 	
-	public SearchBusinessGroupListController(UserRequest ureq, WindowControl wControl) {
-		super(ureq, wControl, "group_list", true, true, null);
+	public SearchBusinessGroupListController(UserRequest ureq, WindowControl wControl, String prefsKey) {
+		super(ureq, wControl, "group_list", true, true, prefsKey, null);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/group/ui/main/SelectBusinessGroupCourseAuthorController.java b/src/main/java/org/olat/group/ui/main/SelectBusinessGroupCourseAuthorController.java
index abc58fc36f65e5d00a9ceadc830a06b69a09452c..4210eddf4d434b450c0b47a64ef5bc6bd7e129ea 100644
--- a/src/main/java/org/olat/group/ui/main/SelectBusinessGroupCourseAuthorController.java
+++ b/src/main/java/org/olat/group/ui/main/SelectBusinessGroupCourseAuthorController.java
@@ -35,7 +35,7 @@ import org.olat.group.model.SearchBusinessGroupParams;
 public class SelectBusinessGroupCourseAuthorController extends AbstractBusinessGroupListController {
 	
 	public SelectBusinessGroupCourseAuthorController(UserRequest ureq, WindowControl wControl) {
-		super(ureq, wControl, "group_list");
+		super(ureq, wControl, "group_list", "authors");
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/group/ui/main/SelectFavoritBusinessGroupController.java b/src/main/java/org/olat/group/ui/main/SelectFavoritBusinessGroupController.java
index 4a50502df25cafce31131d6c5d47963deddf6bf5..2bc1e0de90f24e103fa31703b87822ca043f0d22 100644
--- a/src/main/java/org/olat/group/ui/main/SelectFavoritBusinessGroupController.java
+++ b/src/main/java/org/olat/group/ui/main/SelectFavoritBusinessGroupController.java
@@ -32,7 +32,7 @@ import org.olat.group.model.SearchBusinessGroupParams;
 public class SelectFavoritBusinessGroupController extends AbstractBusinessGroupListController {
 
 	public SelectFavoritBusinessGroupController(UserRequest ureq, WindowControl wControl) {
-		super(ureq, wControl, "group_list");
+		super(ureq, wControl, "group_list", "sel-favorit");
 	}
 
 
diff --git a/src/main/java/org/olat/group/ui/main/SelectOwnedBusinessGroupController.java b/src/main/java/org/olat/group/ui/main/SelectOwnedBusinessGroupController.java
index 070d94955135dc919271768884c7e99bad54086e..ae67a4766256d2791d5569ef8aebdf5b03ecdf95 100644
--- a/src/main/java/org/olat/group/ui/main/SelectOwnedBusinessGroupController.java
+++ b/src/main/java/org/olat/group/ui/main/SelectOwnedBusinessGroupController.java
@@ -32,7 +32,7 @@ import org.olat.group.model.SearchBusinessGroupParams;
 public class SelectOwnedBusinessGroupController extends AbstractBusinessGroupListController {
 	
 	public SelectOwnedBusinessGroupController(UserRequest ureq, WindowControl wControl) {
-		super(ureq, wControl, "select_group_list");
+		super(ureq, wControl, "select_group_list", "sel-owned");
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/group/ui/main/SelectSearchBusinessGroupController.java b/src/main/java/org/olat/group/ui/main/SelectSearchBusinessGroupController.java
index 68f683bad2ff167b205198a8a14772d41aa4b746..6d882b634172bc785e566ebfc88d439f13eaf6d0 100644
--- a/src/main/java/org/olat/group/ui/main/SelectSearchBusinessGroupController.java
+++ b/src/main/java/org/olat/group/ui/main/SelectSearchBusinessGroupController.java
@@ -34,7 +34,7 @@ public class SelectSearchBusinessGroupController extends AbstractBusinessGroupLi
 	private final boolean restricted;
 	
 	public SelectSearchBusinessGroupController(UserRequest ureq, WindowControl wControl, boolean restricted) {
-		super(ureq, wControl, "group_list");
+		super(ureq, wControl, "group_list", "sel-search");
 		this.restricted = restricted;
 	}
 
diff --git a/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java b/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java
index 95951773d4daf5a5bf276603d840a359c8c483cf..bd3c094657341f540c97352087d5792c2787bbec 100644
--- a/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java
+++ b/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java
@@ -75,6 +75,7 @@ public abstract class AbstractItemListController extends FormBasicController
 	private FlexiTableElement itemsTable;
 	private QuestionItemDataModel model;
 	
+	private final String prefsKey;
 	private ExtendedSearchController extendedSearchCtrl;
 	
 	private final MarkManager markManager;
@@ -86,6 +87,7 @@ public abstract class AbstractItemListController extends FormBasicController
 	public AbstractItemListController(UserRequest ureq, WindowControl wControl, QuestionItemsSource source, String key) {
 		super(ureq, wControl, "item_list");
 
+		this.prefsKey = key;
 		this.itemsSource = source;
 		markManager = CoreSpringFactory.getImpl(MarkManager.class);
 		qpoolService = CoreSpringFactory.getImpl(QPoolService.class);
@@ -146,6 +148,7 @@ public abstract class AbstractItemListController extends FormBasicController
 		itemsTable.setSortSettings(new FlexiTableSortOptions(true));
 		itemsTable.setExtendedSearch(extendedSearchCtrl);
 		itemsTable.setColumnIndexForDragAndDropLabel(Cols.title.ordinal());
+		itemsTable.setAndLoadPersistedPreferences(ureq, "qpool-list-" + prefsKey);
 
 		initButtons(ureq, formLayout);
 	}