diff --git a/briar-api/src/org/briarproject/api/sync/ValidationManager.java b/briar-api/src/org/briarproject/api/sync/ValidationManager.java
index 35fcea79c44b4c2e7dd27963cb141c69101c8cba..4de322bc0c793d13f4cfd80220a81f47448a5302 100644
--- a/briar-api/src/org/briarproject/api/sync/ValidationManager.java
+++ b/briar-api/src/org/briarproject/api/sync/ValidationManager.java
@@ -27,5 +27,5 @@ public interface ValidationManager {
 	}
 
 	/** Sets the message validator for the given client. */
-	void setMessageValidator(ClientId c, MessageValidator v);
+	void registerMessageValidator(ClientId c, MessageValidator v);
 }
diff --git a/briar-core/src/org/briarproject/forum/ForumModule.java b/briar-core/src/org/briarproject/forum/ForumModule.java
index 94f0f829cdd6406702740dfe094fdcf84376f702..3d82cdfe44bc5b13b69e5a82c0b7e49b75cc6b64 100644
--- a/briar-core/src/org/briarproject/forum/ForumModule.java
+++ b/briar-core/src/org/briarproject/forum/ForumModule.java
@@ -34,7 +34,7 @@ public class ForumModule extends AbstractModule {
 		ForumPostValidator validator = new ForumPostValidator(crypto,
 				bdfReaderFactory, bdfWriterFactory, authorReader,
 				metadataEncoder, clock);
-		validationManager.setMessageValidator(forumManager.getClientId(),
+		validationManager.registerMessageValidator(forumManager.getClientId(),
 				validator);
 		return validator;
 	}
diff --git a/briar-core/src/org/briarproject/messaging/MessagingModule.java b/briar-core/src/org/briarproject/messaging/MessagingModule.java
index 1854afcc769a0600036ddf9cc7eb0ad8167af0ff..0e55193e049a175b52d34f755d2b1bbfc5138aca 100644
--- a/briar-core/src/org/briarproject/messaging/MessagingModule.java
+++ b/briar-core/src/org/briarproject/messaging/MessagingModule.java
@@ -27,7 +27,8 @@ public class MessagingModule extends AbstractModule {
 			Clock clock) {
 		PrivateMessageValidator validator = new PrivateMessageValidator(
 				bdfReaderFactory, metadataEncoder, clock);
-		validationManager.setMessageValidator(messagingManager.getClientId(),
+		validationManager.registerMessageValidator(
+				messagingManager.getClientId(),
 				validator);
 		return validator;
 	}
diff --git a/briar-core/src/org/briarproject/sync/SyncModule.java b/briar-core/src/org/briarproject/sync/SyncModule.java
index 77633c7d2fbea88d2f20bd707db4b3d7b541e14a..f90c6c1ecc05642840ff48579ee27f4014c2505a 100644
--- a/briar-core/src/org/briarproject/sync/SyncModule.java
+++ b/briar-core/src/org/briarproject/sync/SyncModule.java
@@ -7,6 +7,7 @@ import org.briarproject.api.data.ObjectReader;
 import org.briarproject.api.event.EventBus;
 import org.briarproject.api.identity.Author;
 import org.briarproject.api.identity.AuthorFactory;
+import org.briarproject.api.lifecycle.LifecycleManager;
 import org.briarproject.api.sync.Group;
 import org.briarproject.api.sync.GroupFactory;
 import org.briarproject.api.sync.MessageFactory;
@@ -48,8 +49,9 @@ public class SyncModule extends AbstractModule {
 	}
 
 	@Provides @Singleton
-	ValidationManager getValidationManager(EventBus eventBus,
-			ValidationManagerImpl validationManager) {
+	ValidationManager getValidationManager(LifecycleManager lifecycleManager,
+			EventBus eventBus, ValidationManagerImpl validationManager) {
+		lifecycleManager.register(validationManager);
 		eventBus.addListener(validationManager);
 		return validationManager;
 	}
diff --git a/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java b/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java
index 9f977ef15bd076bb80721f7ed2285e3b63cee238..28e248ae42fbd79b59f777978db4e8fa6ebf9109 100644
--- a/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java
+++ b/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java
@@ -13,6 +13,7 @@ import org.briarproject.api.db.NoSuchSubscriptionException;
 import org.briarproject.api.event.Event;
 import org.briarproject.api.event.EventListener;
 import org.briarproject.api.event.MessageAddedEvent;
+import org.briarproject.api.lifecycle.Service;
 import org.briarproject.api.sync.ClientId;
 import org.briarproject.api.sync.GroupId;
 import org.briarproject.api.sync.Message;
@@ -29,7 +30,8 @@ import java.util.logging.Logger;
 import static java.util.logging.Level.WARNING;
 import static org.briarproject.api.sync.SyncConstants.MESSAGE_HEADER_LENGTH;
 
-class ValidationManagerImpl implements ValidationManager, EventListener {
+class ValidationManagerImpl implements ValidationManager, Service,
+		EventListener {
 
 	private static final Logger LOG =
 			Logger.getLogger(ValidationManagerImpl.class.getName());
@@ -50,9 +52,19 @@ class ValidationManagerImpl implements ValidationManager, EventListener {
 	}
 
 	@Override
-	public void setMessageValidator(ClientId c, MessageValidator v) {
+	public boolean start() {
+		for (ClientId c : validators.keySet()) getMessagesToValidate(c);
+		return true;
+	}
+
+	@Override
+	public boolean stop() {
+		return true;
+	}
+
+	@Override
+	public void registerMessageValidator(ClientId c, MessageValidator v) {
 		validators.put(c, v);
-		getMessagesToValidate(c);
 	}
 
 	private void getMessagesToValidate(final ClientId c) {