diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
index 211a0c4825b84ce2131c4f9f8a1f046aa8d30e62..a072f8fbf3c9bcccaca0a4a2664cc737789643a3 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
@@ -501,7 +501,7 @@ public abstract class AbstractFlexiTableRenderer extends DefaultComponentRendere
 				nearright = maxPage - page;
 				nearleft += (nearleft - nearright);
 			}
-			for (int i = 1; i <= maxPage; i++) {
+			for (int i = 0; i <= maxPage; i++) {
 				// adapt stepsize if needed
 				stepSize = adaptStepIfNeeded(page, maxStepSize, stepSize, i);
 	
@@ -511,7 +511,7 @@ public abstract class AbstractFlexiTableRenderer extends DefaultComponentRendere
 					isStep = isStep && (stepCnt % useEveryStep == 0);
 				}
 				isNear = (i > (page - nearleft) && i < (page + nearright));
-				if (i == 1 || i == maxPage || isStep || isNear) {
+				if (i == 0 || i == maxPage || isStep || isNear) {
 					appendPagenNumberLink(sb, ftC, page, i);
 				}
 			}
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
index 61fd916fd51609db9345edf35f25f3f820a6c75b..74fa37c453d6b25addb38a2dc5eb1f41af3d0822 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
@@ -599,10 +599,10 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 				&& extendedSearchButton.getFormDispatchId().equals(dispatchuri)) {
 			expandExtendedSearch(ureq);
 		} else if(dispatchuri != null && StringHelper.containsNonWhitespace(filter)) {
-			filter(filter);
+			doFilter(filter);
 		} else if(exportButton != null
 				&& exportButton.getFormDispatchId().equals(dispatchuri)) {
-			export(ureq);
+			doExport(ureq);
 		} else if(dispatchuri != null && select != null && select.equals("checkall")) {
 			doSelectAll();
 		} else if(dispatchuri != null && select != null && select.equals("uncheckall")) {
@@ -687,7 +687,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 		}
 	}
 	
-	protected void filter(String filterKey) {
+	private void doFilter(String filterKey) {
 		if(filterKey == null) {
 			for(FlexiTableFilter filter:filters) {
 				filter.setSelected(false);
@@ -699,8 +699,16 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 		}
 		
 		if(dataModel instanceof FilterableFlexiTableModel) {
+			rowCount = -1;
+			currentPage = 0;
+			currentFirstResult = 0;
+			
 			((FilterableFlexiTableModel)dataModel).filter(filterKey);
 		} else if(dataSource != null) {
+			rowCount = -1;
+			currentPage = 0;
+			currentFirstResult = 0;
+
 			List<String> conditionalQueries = Collections.singletonList(filterKey);
 			dataSource.clear();
 			dataSource.load(null, conditionalQueries, 0, getPageSize(), orderBy);
@@ -708,7 +716,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 		component.setDirty(true);
 	}
 	
-	protected void export(UserRequest ureq) {
+	private void doExport(UserRequest ureq) {
 		MediaResource resource;
 		if(dataModel instanceof ExportableFlexiTableDataModel) {
 			resource = ((ExportableFlexiTableDataModel)dataModel).export(component);
diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataSource.java b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataSource.java
index 66126df20fe24fd2f4ce5d4d9e0c8b6d2e74f29f..79a66330aa2586ab58faaf27b9497e09842c5d84 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataSource.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataSource.java
@@ -108,7 +108,7 @@ public class AuthoringEntryDataSource implements FlexiTableDataSourceDelegate<Au
 		if(condQueries != null && condQueries.size() > 0) {
 			String filter = condQueries.get(0);
 			if(StringHelper.containsNonWhitespace(filter)) {
-				searchParams.addResourceTypes(filter);
+				searchParams.setResourceTypes(Collections.singletonList(filter));
 			} else {
 				searchParams.setResourceTypes(null);
 			}