diff --git oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditor.java oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditor.java
index b3fb246..8150797 100644
--- oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditor.java
+++ oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditor.java
@@ -262,6 +262,7 @@ public class LuceneIndexEditor implements IndexEditor, Aggregate.AggregateRoot {
                 if (log.isTraceEnabled()){
                     log.trace("Indexed document for {} is {}", path, d);
                 }
+                context.indexUpdate();
                 context.getWriter().updateDocument(newPathTerm(path), d);
                 return true;
             }
@@ -361,7 +362,6 @@ public class LuceneIndexEditor implements IndexEditor, Aggregate.AggregateRoot {
         boolean includeTypeForFullText = indexingRule.includePropertyType(property.getType().tag());
         if (Type.BINARY.tag() == property.getType().tag()
                 && includeTypeForFullText) {
-            this.context.indexUpdate();
             fields.addAll(newBinary(property, state, null, path + "@" + pname));
             return true;
         }  else {
@@ -373,7 +373,6 @@ public class LuceneIndexEditor implements IndexEditor, Aggregate.AggregateRoot {
 
             if (pd.fulltextEnabled() && includeTypeForFullText) {
                 for (String value : property.getValue(Type.STRINGS)) {
-                    this.context.indexUpdate();
                     if (pd.analyzed && pd.includePropertyType(property.getType().tag())) {
                         String analyzedPropName = constructAnalyzedPropertyName(pname);
                         fields.add(newPropertyField(analyzedPropName, value, !pd.skipTokenization(pname), pd.stored));
@@ -424,7 +423,6 @@ public class LuceneIndexEditor implements IndexEditor, Aggregate.AggregateRoot {
                 f = new StringField(pname, property.getValue(Type.STRING, i), Field.Store.NO);
             }
 
-            this.context.indexUpdate();
             fields.add(f);
             fieldAdded = true;
         }
@@ -470,7 +468,6 @@ public class LuceneIndexEditor implements IndexEditor, Aggregate.AggregateRoot {
                 }
 
                 if (f != null) {
-                    this.context.indexUpdate();
                     fields.add(f);
                     fieldAdded = true;
                 }
@@ -649,7 +646,6 @@ public class LuceneIndexEditor implements IndexEditor, Aggregate.AggregateRoot {
 
             if (Type.BINARY == property.getType()) {
                 String aggreagtedNodePath = PathUtils.concat(path, result.nodePath);
-                this.context.indexUpdate();
                 //Here the fulltext is being created for aggregate root hence nodePath passed
                 //should be null
                 String nodePath = result.isRelativeNode() ? result.rootIncludePath : null;
@@ -666,7 +662,6 @@ public class LuceneIndexEditor implements IndexEditor, Aggregate.AggregateRoot {
                 }
 
                 for (String value : property.getValue(Type.STRINGS)) {
-                    this.context.indexUpdate();
                     Field field = result.isRelativeNode() ?
                             newFulltextField(result.rootIncludePath, value) : newFulltextField(value) ;
                     if (pd != null) {
