diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/counter/NodeCounterEditor.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/counter/NodeCounterEditor.java
index b255a5d840..1118a60616 100644
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/counter/NodeCounterEditor.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/counter/NodeCounterEditor.java
@@ -159,7 +159,11 @@ public class NodeCounterEditor implements Editor {
         }
         root.callback.indexUpdate();
         for (Map.Entry<Mount, Integer> e : countOffsets.entrySet()) {
-            NodeBuilder builder = getBuilder(e.getKey());
+            Mount mount = e.getKey();
+            if (mount.isReadOnly()) {
+                continue;
+            }
+            NodeBuilder builder = getBuilder(mount);
             int countOffset = e.getValue();
 
             PropertyState p = builder.getProperty(COUNT_HASH_PROPERTY_NAME);
diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreLuceneIndexTest.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreLuceneIndexTest.java
index 4aa4a2bc29..d02debe466 100644
--- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreLuceneIndexTest.java
+++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreLuceneIndexTest.java
@@ -47,6 +47,7 @@ import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.TYPE_PROPER
 import static org.apache.jackrabbit.oak.plugins.index.lucene.TestUtil.shutdown;
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertThat;
 
 @SuppressWarnings("ConstantConditions")
@@ -113,6 +114,19 @@ public class CompositeNodeStoreLuceneIndexTest extends CompositeNodeStoreQueryTe
         repoV1.setupIndexAndContentInRepo("luceneTest", "foo", true, VERSION_1);
     }
 
+    @Test
+    public void reindexCounterIndex() throws Exception {
+        Session s = repoV1.getSession();
+        Node c = s.getRootNode().getNode(INDEX_DEFINITIONS_NAME).getNode("counter");
+
+        c.setProperty("async", (String) null);
+        c.setProperty("resolution", 1);
+        c.setProperty("reindex", true);
+        s.save();
+
+        assertFalse(c.getProperty("reindex").getBoolean());
+    }
+
     /**
      * Given a composite jcr repo with a lucene index with indexed data from both read only and read write parts
      * We create a V2 of this repo which will have the lucene index removed -
