diff --git a/src/main/java/org/olat/search/service/SearchServiceImpl.java b/src/main/java/org/olat/search/service/SearchServiceImpl.java
index 7b58251dad00781827d261a18dd81b3be4072bc3..888bf689f23a9e42dc2c18b7de9299b3a5b2a88f 100644
--- a/src/main/java/org/olat/search/service/SearchServiceImpl.java
+++ b/src/main/java/org/olat/search/service/SearchServiceImpl.java
@@ -497,11 +497,16 @@ public class SearchServiceImpl implements SearchService, GenericEventListener {
 		    final OOMultiReader r = (OOMultiReader)referenceToRefresh.getIndexReader();
 		    final IndexReader newReader = DirectoryReader.openIfChanged(r.getReader());
 		    final IndexReader newPermReader = DirectoryReader.openIfChanged(r.getPermanentReader());
-		    if (newReader == null && newPermReader == null) {
-		    	return null;
+		    
+		    IndexSearcher searcher;
+		    if(refresh.getAndSet(false)) {
+		    	searcher = getSearcher(factory);
+		    } else if (newReader == null && newPermReader == null) {
+		    	searcher = null;
 		    } else {
-		    	return getSearcher(factory);
+		    	searcher = getSearcher(factory);
 		    }
+		    return searcher;
 		}
 
 		@Override