diff --git a/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/PersistentIndex.java b/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/PersistentIndex.java
index <HASH>..<HASH> 100644
--- a/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/PersistentIndex.java
+++ b/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/PersistentIndex.java
@@ -152,6 +152,9 @@ class PersistentIndex extends AbstractIndex
     */
    synchronized ReadOnlyIndexReader getReadOnlyIndexReader(IndexListener listener) throws IOException
    {
+      // Ensure all in-memory changes are persisted before returning reader to merger
+      releaseWriterAndReaders();
+      
       ReadOnlyIndexReader reader = getReadOnlyIndexReader();
       this.listener = listener;
       return reader;
EXOJCR-<I> : Ensure all in-memory changes are persisted before returning reader to merger