diff --git a/src/main/java/org/olat/modules/quality/ui/DataCollectionDataModel.java b/src/main/java/org/olat/modules/quality/ui/DataCollectionDataModel.java
index f5f37549cecacc39aa544a4f85ec3e683894f586..2344527b023f76208dc5434f9391930181eeb1aa 100644
--- a/src/main/java/org/olat/modules/quality/ui/DataCollectionDataModel.java
+++ b/src/main/java/org/olat/modules/quality/ui/DataCollectionDataModel.java
@@ -82,6 +82,17 @@ public class DataCollectionDataModel extends DefaultFlexiTableDataSourceModel<Da
 	public DefaultFlexiTableDataSourceModel<DataCollectionRow> createCopyWithEmptyList() {
 		return new DataCollectionDataModel(getSourceDelegate(), getTableColumnModel(), translator);
 	}
+	
+	@Override
+	public DataCollectionDataSource getSourceDelegate() {
+		return (DataCollectionDataSource)super.getSourceDelegate();
+	}
+	
+	@Override
+	public void clear() {
+		super.clear();
+		getSourceDelegate().resetCount();
+	}
 
 	public enum DataCollectionCols implements FlexiSortableColumnDef {
 		key("data.collection.id"),
diff --git a/src/main/java/org/olat/modules/quality/ui/DataCollectionDataSource.java b/src/main/java/org/olat/modules/quality/ui/DataCollectionDataSource.java
index 579ca0532e6889998eca9cd01b8f5837a6253e6a..16c591c1d5ed22d21e1f910e693df0e1fba54181 100644
--- a/src/main/java/org/olat/modules/quality/ui/DataCollectionDataSource.java
+++ b/src/main/java/org/olat/modules/quality/ui/DataCollectionDataSource.java
@@ -46,6 +46,7 @@ public class DataCollectionDataSource implements FlexiTableDataSourceDelegate<Da
 	private final Translator translator;
 	private final QualityDataCollectionViewSearchParams defaultSearchParams;
 	private QualityDataCollectionViewSearchParams searchParams;
+	private Integer count;
 	
 	@Autowired
 	private QualityService qualityService;
@@ -63,11 +64,19 @@ public class DataCollectionDataSource implements FlexiTableDataSourceDelegate<Da
 		this.searchParams.setReportAccessIdentity(defaultSearchParams.getReportAccessIdentity());
 		this.searchParams.setLearnResourceManagerOrganisationRefs(defaultSearchParams.getLearnResourceManagerOrganisationRefs());
 		this.searchParams.setIgnoreReportAccessRelationRole(defaultSearchParams.isIgnoreReportAccessRelationRole());
+		count = null;
+	}
+	
+	public void resetCount() {
+		count = null;
 	}
 
 	@Override
 	public int getRowCount() {
-		return qualityService.getDataCollectionCount(searchParams);
+		if (count == null) {
+			count = qualityService.getDataCollectionCount(searchParams);
+		}
+		return count.intValue();
 	}
 
 	@Override
@@ -78,6 +87,7 @@ public class DataCollectionDataSource implements FlexiTableDataSourceDelegate<Da
 	@Override
 	public ResultInfos<DataCollectionRow> getRows(String query, List<FlexiTableFilter> filters,
 			List<String> condQueries, int firstResult, int maxResults, SortKey... orderBy) {
+		searchParams.setSearchString(query);
 
 		List<QualityDataCollectionView> dataCollections = qualityService.loadDataCollections(translator, searchParams,
 				firstResult, maxResults, orderBy);
diff --git a/src/main/java/org/olat/modules/quality/ui/DataCollectionListController.java b/src/main/java/org/olat/modules/quality/ui/DataCollectionListController.java
index d7cb0fdcd07b0ef03a8e0ba86618976fc210e6fc..ac84ae3add121a66f9a74923592ae21914bca568 100644
--- a/src/main/java/org/olat/modules/quality/ui/DataCollectionListController.java
+++ b/src/main/java/org/olat/modules/quality/ui/DataCollectionListController.java
@@ -33,7 +33,6 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFle
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnModel;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory;
-import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableSearchEvent;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent;
 import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.components.link.LinkFactory;
@@ -107,6 +106,7 @@ public class DataCollectionListController extends FormBasicController implements
 		defaultSearchParams.setLearnResourceManagerOrganisationRefs(secCallback.getLearnResourceManagerOrganisationRefs());
 		defaultSearchParams.setIgnoreReportAccessRelationRole(!securityModule.isRelationRoleEnabled());
 		dataSource = new DataCollectionDataSource(getTranslator(), defaultSearchParams);
+		dataSource.setSearchParams(new QualityDataCollectionViewSearchParams());
 		
 		searchCtrl = new DataCollectionSearchController(ureq, getWindowControl(), mainForm, defaultSearchParams);
 		searchCtrl.setEnabled(false);
@@ -201,9 +201,6 @@ public class DataCollectionListController extends FormBasicController implements
 			if (CMD_EDIT.equals(cmd)) {
 				doEditDataCollection(ureq, row.getDataCollection());
 			}
-		} else if(event instanceof FlexiTableSearchEvent) {
-			FlexiTableSearchEvent ftse = (FlexiTableSearchEvent)event;
-			doSearch(ftse.getSearch());
 		}
 		super.formInnerEvent(ureq, source, event);
 	}
@@ -227,7 +224,7 @@ public class DataCollectionListController extends FormBasicController implements
 				QualityDataCollection dataCollectionToDelete = dccEvent.getDataCollection();
 				doConfirmDeleteDataCollection(ureq, dataCollectionToDelete);
 			}
-		}else if (searchCtrl == source) {
+		} else if (searchCtrl == source) {
 			if (event instanceof SearchEvent) {
 				SearchEvent se = (SearchEvent)event;
 				doExtendedSearch(se);
@@ -305,11 +302,6 @@ public class DataCollectionListController extends FormBasicController implements
 		tableEl.reset(true, false, true);
 		stackPanel.popUpToController(this);
 	}
-	private void doSearch(String search) {
-		QualityDataCollectionViewSearchParams params = new QualityDataCollectionViewSearchParams();
-		params.setSearchString(search);
-		doSearch(params);
-	}
 
 	private void doExtendedSearch(SearchEvent se) {
 		QualityDataCollectionViewSearchParams params = new QualityDataCollectionViewSearchParams();
@@ -324,10 +316,7 @@ public class DataCollectionListController extends FormBasicController implements
 		params.setFormEntryRefs(se.getFormEntryRefs());
 		params.setTopicTypes(se.getTopicTypes());
 		params.setStatus(se.getStatus());
-		doSearch(params);
-	}
-
-	private void doSearch(QualityDataCollectionViewSearchParams params) {
+		
 		dataSource.setSearchParams(params);
 		tableEl.reset(true, true, true);
 	}