diff --git oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditorProvider.java oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditorProvider.java
index 6d2b437..052c0e1 100644
--- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditorProvider.java
+++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditorProvider.java
@@ -19,7 +19,9 @@ package org.apache.jackrabbit.oak.plugins.index.property;
 import javax.annotation.Nonnull;
 
 import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Service;
+import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
 import org.apache.jackrabbit.oak.plugins.index.IndexEditorProvider;
 import org.apache.jackrabbit.oak.spi.commit.Editor;
 import org.apache.jackrabbit.oak.plugins.index.IndexUpdateCallback;
@@ -34,6 +36,7 @@ import org.apache.jackrabbit.oak.spi.state.NodeState;
  * 
  */
 @Component
+@Property(name = IndexConstants.TYPE_PROPERTY_NAME , value = "property", propertyPrivate = true)
 @Service(IndexEditorProvider.class)
 public class PropertyIndexEditorProvider implements IndexEditorProvider {
 
diff --git oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java
index 46cd689..0e70391 100644
--- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java
+++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java
@@ -29,10 +29,12 @@ import org.apache.felix.scr.annotations.ConfigurationPolicy;
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferenceStrategy;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.commons.PropertiesUtil;
 import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard;
 import org.apache.jackrabbit.oak.plugins.commit.JcrConflictHandler;
+import org.apache.jackrabbit.oak.plugins.index.IndexEditorProvider;
 import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent;
 import org.apache.jackrabbit.oak.plugins.observation.CommitRateLimiter;
 import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer;
@@ -53,6 +55,10 @@ import org.osgi.framework.ServiceRegistration;
  * to be configured in a custom way
  */
 @Component(policy = ConfigurationPolicy.REQUIRE)
+@Reference(referenceInterface = IndexEditorProvider.class,
+        target = "(type=property)",
+        strategy = ReferenceStrategy.LOOKUP
+)
 public class RepositoryManager {
     private static final int DEFAULT_OBSERVATION_QUEUE_LENGTH = 1000;
     private static final boolean DEFAULT_COMMIT_RATE_LIMIT = false;
diff --git oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/AbstractRepositoryFactoryTest.groovy oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/AbstractRepositoryFactoryTest.groovy
index 9d27a0d..1141576 100644
--- oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/AbstractRepositoryFactoryTest.groovy
+++ oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/AbstractRepositoryFactoryTest.groovy
@@ -26,6 +26,7 @@ import org.junit.After
 import org.junit.Before
 import org.junit.Rule
 import org.junit.rules.TemporaryFolder
+import org.osgi.framework.BundleContext
 import org.osgi.framework.ServiceReference
 import org.osgi.service.cm.ConfigurationAdmin
 import org.osgi.util.tracker.ServiceTracker
@@ -82,7 +83,11 @@ abstract class AbstractRepositoryFactoryTest{
     }
 
     protected <T> T getServiceWithWait(Class<T> clazz) {
-        ServiceTracker st = new ServiceTracker(getRegistry().bundleContext, clazz.name, null)
+        return getServiceWithWait(clazz, getRegistry().bundleContext)
+    }
+
+    protected static <T> T getServiceWithWait(Class<T> clazz, BundleContext bundleContext) {
+        ServiceTracker st = new ServiceTracker(bundleContext, clazz.name, null)
         st.open()
         T sr = (T) st.waitForService(TimeUnit.SECONDS.toMillis(SVC_WAIT_TIME))
         assert sr , "No service found for ${clazz.name}"
diff --git oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/PropertyIndexReindexingTest.groovy oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/PropertyIndexReindexingTest.groovy
index e4b1e89..8f28cbf 100644
--- oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/PropertyIndexReindexingTest.groovy
+++ oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/PropertyIndexReindexingTest.groovy
@@ -19,6 +19,7 @@
 
 package org.apache.jackrabbit.oak.run.osgi
 
+import org.apache.felix.connect.launch.PojoServiceRegistry
 import org.apache.felix.scr.Component
 import org.apache.felix.scr.ScrService
 import org.apache.jackrabbit.JcrConstants
@@ -29,11 +30,12 @@ import org.junit.Ignore
 import org.junit.Test
 
 import javax.jcr.Node
+import javax.jcr.Repository
 import javax.jcr.Session
 
 import static org.apache.jackrabbit.oak.run.osgi.OakOSGiRepositoryFactory.REPOSITORY_CONFIG_FILE
 
-@Ignore("OAK-3366")
+//@Ignore("OAK-3366")
 class PropertyIndexReindexingTest extends AbstractRepositoryFactoryTest{
 
     @Before
@@ -44,6 +46,7 @@ class PropertyIndexReindexingTest extends AbstractRepositoryFactoryTest{
     @Test
     public void propertyIndexState() throws Exception{
         repository = repositoryFactory.getRepository(config)
+        PojoServiceRegistry registry = getRegistry()
 
         //1. Save a node with 'foo' property
         Session s = createAdminSession()
@@ -70,15 +73,17 @@ class PropertyIndexReindexingTest extends AbstractRepositoryFactoryTest{
 
         c[0].disable()
 
-        //5. Save another node with 'foo' property
-        s = createAdminSession()
-        s.getRootNode().addNode("a2").setProperty("foo", "bar")
-        s.save();  s.logout();
+       assert registry.getServiceReference(Repository.class.name) == null : "Repository should be unregistered " +
+               "if no property index editor found"
 
-        //Either last save should not have succeeded or at least reindex flag is not set to
-        //true
+        //5. Re-enable the editor and wait untill repository gets re-registered
+        c[0].enable()
+        getServiceWithWait(Repository.class, registry.bundleContext)
+
+        //6. Reindex flag should be stable
         s = createAdminSession()
         assert false == s.getProperty("/oak:index/foo/reindex").boolean
         s.logout()
+
     }
 }
