diff --git a/docs/changelog.rst b/docs/changelog.rst
index 6dc9fdf..b1e5a45 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -1,6 +1,7 @@
 Changelog
 =========
 
+* :support:`-` use celery routers from gvacommon
 * :feature:`-` automatic creation of mailbox names from user names
 * :bug:`-` fix broken mailbox admin
 
diff --git a/gnuviechadmin/gnuviechadmin/settings/base.py b/gnuviechadmin/gnuviechadmin/settings/base.py
index 5442654..f05a821 100644
--- a/gnuviechadmin/gnuviechadmin/settings/base.py
+++ b/gnuviechadmin/gnuviechadmin/settings/base.py
@@ -279,8 +279,8 @@ CELERY_RESULT_BACKEND = 'amqp'
 CELERY_RESULT_PERSISTENT = True
 CELERY_TASK_RESULT_EXPIRES = None
 CELERY_ROUTES = (
-    'osusers.tasks.LdapRouter',
-    'osusers.tasks.FileRouter',
+    'gvacommon.celeryrouters.LdapRouter',
+    'gvacommon.celeryrouters.FileRouter',
 )
 CELERY_ACCEPT_CONTENT = ['pickle', 'yaml', 'json']
 CELERY_TASK_SERIALIZER = 'json'
diff --git a/gnuviechadmin/osusers/tasks.py b/gnuviechadmin/osusers/tasks.py
index 7edd7c7..d1457b4 100644
--- a/gnuviechadmin/osusers/tasks.py
+++ b/gnuviechadmin/osusers/tasks.py
@@ -3,26 +3,6 @@ from __future__ import absolute_import
 from celery import shared_task
 
 
-class LdapRouter(object):
-
-    def route_for_task(self, task, args=None, kwargs=None):
-        if 'ldap' in task:
-            return {'exchange': 'ldap',
-                    'exchange_type': 'direct',
-                    'queue': 'ldap'}
-        return None
-
-
-class FileRouter(object):
-
-    def route_for_task(self, task, args=None, kwargs=None):
-        if 'file' in task:
-            return {'exchange': 'file',
-                    'exchange_type': 'direct',
-                    'queue': 'file'}
-        return None
-
-
 @shared_task
 def create_ldap_group(groupname, gid, descr):
     pass