diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java
index 18174b0e23f6c55256b79342964e13c8cbb043ba..1623beea125068c01e9bca168c1ed0d4b3bba3a2 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableElement.java
@@ -380,6 +380,14 @@ public interface FlexiTableElement extends FormItem {
 	 */
 	public void reset(boolean page, boolean internal, boolean reloadData);
 	
+	/**
+	 * It will reload all the data without filter. Use it with cautious as
+	 * at some place, there are minimal restrictions to the search string.
+	 * 
+	 * @param ureq
+	 */
+	public void resetSearch(UserRequest ureq);
+	
 	public void reloadData();
 
 	/**
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 71e78716a52bf90ceea9e663b2db35dad5a6f7d4..094ef037ac676593239304979bb3437c8ecce93d 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
@@ -1295,7 +1295,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 		if(StringHelper.containsNonWhitespace(search)) {
 			doSearch(ureq, FlexiTableSearchEvent.QUICK_SEARCH, search, null);
 		} else {
-			doResetSearch(ureq);
+			resetSearch(ureq);
 		}
 	}
 	
@@ -1367,7 +1367,8 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 				search, getSelectedFilters(), getSelectedExtendedFilters(), condQueries, FormEvent.ONCLICK));
 	}
 	
-	protected void doResetSearch(UserRequest ureq) {
+	@Override
+	public void resetSearch(UserRequest ureq) {
 		conditionalQueries = null;
 		currentPage = 0;
 		if(dataSource != null) {
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 03cb37f6692af444c0d758df0f7e321835803735..18b08a9e9ce0ac0dfa11073f647cad32f586b27e 100644
--- a/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java
+++ b/src/main/java/org/olat/modules/qpool/ui/AbstractItemListController.java
@@ -55,6 +55,7 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.id.OLATResourceable;
+import org.olat.core.util.StringHelper;
 import org.olat.core.util.event.EventBus;
 import org.olat.core.util.event.GenericEventListener;
 import org.olat.modules.qpool.QPoolService;
@@ -109,7 +110,6 @@ public abstract class AbstractItemListController extends FormBasicController
 		
 		extendedSearchCtrl = new ExtendedSearchController(ureq, getWindowControl(), key, mainForm);
 		extendedSearchCtrl.setEnabled(false);
-		listenTo(extendedSearchCtrl);
 		
 		initForm(ureq);
 		
@@ -167,6 +167,7 @@ public abstract class AbstractItemListController extends FormBasicController
 		itemsTable.setExtendedSearch(extendedSearchCtrl);
 		itemsTable.setColumnIndexForDragAndDropLabel(Cols.title.ordinal());
 		itemsTable.setAndLoadPersistedPreferences(ureq, "qpool-list-" + prefsKey);
+		listenTo(extendedSearchCtrl);
 		
 		VelocityContainer detailsVC = createVelocityContainer("item_list_details");
 		itemsTable.setDetailsRenderer(detailsVC, this);
@@ -225,6 +226,16 @@ public abstract class AbstractItemListController extends FormBasicController
 
 	@Override
 	protected void event(UserRequest ureq, Controller source, Event event) {
+		if(extendedSearchCtrl == source) {
+			if(event == Event.CANCELLED_EVENT) {
+				String quickSearch = itemsTable.getQuickSearchString();
+				if(StringHelper.containsNonWhitespace(quickSearch)) {
+					itemsTable.quickSearch(ureq, quickSearch);
+				} else {
+					itemsTable.resetSearch(ureq);
+				}
+			}
+		}
 		super.event(ureq, source, event);
 	}