diff --git a/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexerImpl.java b/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexerImpl.java
index 6f650fa..f6da016 100644
--- a/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexerImpl.java
+++ b/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexerImpl.java
@@ -23,6 +23,8 @@
 import java.util.Iterator;
 import java.util.List;
 
+import javax.inject.Inject;
+
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -65,6 +67,7 @@
     private final ListeningMessageSearchIndex messageSearchIndex;
     private final MailboxSessionMapperFactory mailboxSessionMapperFactory;
 
+    @Inject
     public ReIndexerImpl(MailboxManager mailboxManager,
                          ListeningMessageSearchIndex messageSearchIndex,
                          MailboxSessionMapperFactory mailboxSessionMapperFactory) {
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
index 2d6fd07..6151a9a 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
@@ -33,6 +33,7 @@
 import org.apache.james.mailbox.elasticsearch.NodeMappingFactory;
 import org.apache.james.mailbox.elasticsearch.events.ElasticSearchListeningMessageSearchIndex;
 import org.apache.james.mailbox.store.extractor.TextExtractor;
+import org.apache.james.mailbox.store.search.ListeningMessageSearchIndex;
 import org.apache.james.mailbox.store.search.MessageSearchIndex;
 import org.apache.james.mailbox.tika.extractor.TikaTextExtractor;
 import org.elasticsearch.client.Client;
@@ -52,6 +53,7 @@
     protected void configure() {
         bind(ElasticSearchListeningMessageSearchIndex.class).in(Scopes.SINGLETON);
         bind(MessageSearchIndex.class).to(ElasticSearchListeningMessageSearchIndex.class);
+        bind(ListeningMessageSearchIndex.class).to(ElasticSearchListeningMessageSearchIndex.class);
 
         bind(TikaTextExtractor.class).in(Scopes.SINGLETON);
         bind(TextExtractor.class).to(TikaTextExtractor.class);
diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/JMXServerModule.java b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/JMXServerModule.java
index cefbb8e..9d66b8a 100644
--- a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/JMXServerModule.java
+++ b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/JMXServerModule.java
@@ -26,11 +26,15 @@
 import org.apache.james.adapter.mailbox.MailboxManagerManagement;
 import org.apache.james.adapter.mailbox.MailboxManagerManagementMBean;
 import org.apache.james.adapter.mailbox.MailboxManagerResolver;
+import org.apache.james.adapter.mailbox.ReIndexerManagement;
+import org.apache.james.adapter.mailbox.ReIndexerManagementMBean;
 import org.apache.james.domainlist.api.DomainListManagementMBean;
 import org.apache.james.domainlist.lib.DomainListManagement;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.mailbox.copier.MailboxCopier;
 import org.apache.james.mailbox.copier.MailboxCopierImpl;
+import org.apache.james.mailbox.indexer.ReIndexer;
+import org.apache.james.mailbox.indexer.ReIndexerImpl;
 import org.apache.james.mailetcontainer.api.jmx.MailSpoolerMBean;
 import org.apache.james.mailetcontainer.impl.JamesMailSpooler;
 import org.apache.james.rrt.api.RecipientRewriteTableManagementMBean;
@@ -55,6 +59,7 @@
     private static final String JMX_COMPONENT_RECIPIENTREWRITETABLE = "org.apache.james:type=component,name=recipientrewritetable";
     private static final String JMX_COMPONENT_NAME_MAILBOXMANAGERBEAN = "org.apache.james:type=component,name=mailboxmanagerbean";
     private static final String JMX_COMPONENT_MAILBOXCOPIER = "org.apache.james:type=component,name=mailboxcopier";
+    private static final String JMX_COMPONENT_REINDEXER = "org.apache.james:type=component,name=reindexerbean";
 
     @Override
     protected void configure() {
@@ -66,6 +71,8 @@
         bind(MailboxManagerManagementMBean.class).to(MailboxManagerManagement.class);
         bind(RecipientRewriteTableManagementMBean.class).to(RecipientRewriteTableManagement.class);
         bind(MailSpoolerMBean.class).to(JamesMailSpooler.class);
+        bind(ReIndexer.class).annotatedWith(Names.named("reindexer")).to(ReIndexerImpl.class);
+        bind(ReIndexerManagementMBean.class).to(ReIndexerManagement.class);
         Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(JMXModuleConfigurationPerformer.class);
     }
 
@@ -78,6 +85,7 @@
         private final RecipientRewriteTableManagementMBean recipientRewriteTableManagementMBean;
         private final MailboxManagerManagementMBean mailboxManagerManagementMBean;
         private final MailboxCopierManagementMBean mailboxCopierManagementMBean;
+        private final ReIndexerManagementMBean reIndexerManagementMBean;
 
         @Inject
         public JMXModuleConfigurationPerformer(JMXServer jmxServer,
@@ -85,13 +93,15 @@
                                                UsersRepositoryManagementMBean usersRepositoryManagementMBean,
                                                RecipientRewriteTableManagementMBean recipientRewriteTableManagementMBean,
                                                MailboxManagerManagementMBean mailboxManagerManagementMBean,
-                                               MailboxCopierManagementMBean mailboxCopierManagementMBean) {
+                                               MailboxCopierManagementMBean mailboxCopierManagementMBean,
+                                               ReIndexerManagementMBean reIndexerManagementMBean) {
             this.jmxServer = jmxServer;
             this.domainListManagementMBean = domainListManagementMBean;
             this.usersRepositoryManagementMBean = usersRepositoryManagementMBean;
             this.recipientRewriteTableManagementMBean = recipientRewriteTableManagementMBean;
             this.mailboxManagerManagementMBean = mailboxManagerManagementMBean;
             this.mailboxCopierManagementMBean = mailboxCopierManagementMBean;
+            this.reIndexerManagementMBean = reIndexerManagementMBean;
         }
 
         @Override
@@ -103,6 +113,7 @@
                 jmxServer.register(JMX_COMPONENT_RECIPIENTREWRITETABLE, recipientRewriteTableManagementMBean);
                 jmxServer.register(JMX_COMPONENT_NAME_MAILBOXMANAGERBEAN, mailboxManagerManagementMBean);
                 jmxServer.register(JMX_COMPONENT_MAILBOXCOPIER, mailboxCopierManagementMBean);
+                jmxServer.register(JMX_COMPONENT_REINDEXER, reIndexerManagementMBean);
             } catch (Exception e) {
                 Throwables.propagate(e);
             }
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
index 882f301..6ca3e0a 100644
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
+++ b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
@@ -19,15 +19,19 @@
 
 package org.apache.james.adapter.mailbox;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.indexer.ReIndexer;
 import org.apache.james.mailbox.model.MailboxPath;
 
 public class ReIndexerManagement implements ReIndexerManagementMBean {
 
-    private final ReIndexer reIndexer;
+    private ReIndexer reIndexer;
 
-    public ReIndexerManagement(ReIndexer reIndexer) {
+    @Inject
+    public void setReIndexer(@Named("reindexer") ReIndexer reIndexer) {
         this.reIndexer = reIndexer;
     }
 
diff --git a/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml b/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
index be39003..2175f47 100644
--- a/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
+++ b/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
@@ -274,9 +274,7 @@
         <property name="quotaRootResolver" ref="quotaRootResolver"/>
         <property name="quotaManager" ref="quotaManager"/>
     </bean>
-    <bean id="reindexermanagement" class="org.apache.james.adapter.mailbox.ReIndexerManagement">
-        <constructor-arg index="0" ref="reindexer"/>
-    </bean>
+    <bean id="reindexermanagement" class="org.apache.james.adapter.mailbox.ReIndexerManagement"/>
     <bean id="sievemanagerbean" class="org.apache.james.sieverepository.lib.SieveRepositoryManagement"/>
     <!--
         <bean id="james23importermanagement" class="org.apache.james.container.spring.tool.James23ImporterManagement" />
