diff --git a/django/contrib/sessions/management/__init__.py b/django/contrib/sessions/management/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/django/contrib/sessions/management/commands/__init__.py b/django/contrib/sessions/management/commands/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/django/contrib/sessions/management/commands/cleansessions.py b/django/contrib/sessions/management/commands/cleansessions.py
new file mode 100644
index 0000000..f5783ba
--- /dev/null
+++ b/django/contrib/sessions/management/commands/cleansessions.py
@@ -0,0 +1,12 @@
+from django.core.management.base import NoArgsCommand
+from django.utils import timezone
+
+
+class Command(NoArgsCommand):
+    help = "Clean expired sessions."
+
+    def handle_noargs(self, **options):
+        from django.db import transaction
+        from django.contrib.sessions.models import Session
+        Session.objects.filter(expire_date__lt=timezone.now()).delete()
+        transaction.commit_unless_managed()
diff --git a/django/core/management/commands/cleanup.py b/django/core/management/commands/cleanup.py
index e19d164..45f3bec 100644
--- a/django/core/management/commands/cleanup.py
+++ b/django/core/management/commands/cleanup.py
@@ -1,11 +1,9 @@
+from django.core import management
 from django.core.management.base import NoArgsCommand
-from django.utils import timezone
+
 
 class Command(NoArgsCommand):
     help = "Can be run as a cronjob or directly to clean out old data from the database (only expired sessions at the moment)."
 
     def handle_noargs(self, **options):
-        from django.db import transaction
-        from django.contrib.sessions.models import Session
-        Session.objects.filter(expire_date__lt=timezone.now()).delete()
-        transaction.commit_unless_managed()
+        management.call_command('cleansessions', **options)
diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt
index 7fa7539..ec8b74e 100644
--- a/docs/ref/django-admin.txt
+++ b/docs/ref/django-admin.txt
@@ -1,4 +1,7 @@
 =============================
+
+
+.. 
 django-admin.py and manage.py
 =============================
 
@@ -93,8 +96,11 @@ cleanup
 
 .. django-admin:: cleanup
 
-Can be run as a cronjob or directly to clean out old data from the database
-(only expired sessions at the moment).
+Can be run as a cronjob or directly to clean out old data from the database.
+Right now it only calls :djadmin:`cleansessions` management command from
+``django.contrib.sessions``.
+
+.. versionchanged:: 1.5
 
 compilemessages
 ---------------
@@ -1199,6 +1205,20 @@ This command is only available if the :doc:`Sitemaps framework
 Please refer to its :djadmin:`description <ping_google>` in the Sitemaps
 documentation.
 
+``django.contrib.sessions``
+---------------------------
+
+cleansessions
+~~~~~~~~~~~~~
+
+This command is only available if the :doc:`Sessions </topics/http/sessions>`
+(``django.contrib.sessions``) are installed.
+
+Please refer to its :djadmin:`description <cleansessions>` in the Sessions
+documentation.
+
+.. versionadded:: 1.5
+
 ``django.contrib.staticfiles``
 ------------------------------
 
diff --git a/docs/releases/1.5.txt b/docs/releases/1.5.txt
index 11b3488..f5d5862 100644
--- a/docs/releases/1.5.txt
+++ b/docs/releases/1.5.txt
@@ -486,3 +486,10 @@ a User account, this will be an appropriate design pattern to follow. However,
 the :setting:`AUTH_PROFILE_MODULE` setting, and the
 :meth:`~django.contrib.auth.models.User.get_profile()` method for accessing
 the user profile model, should not be used any longer.
+
+Cleaned :djadmin:`cleanup` management command
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This command have contained only expired sessions clean up for years.
+Therefore new command :djadmin:`cleansessions` in ``django.contrib.sessions``
+do the job and :djadmin:`cleanup` command just call it.
diff --git a/docs/topics/http/sessions.txt b/docs/topics/http/sessions.txt
index 1f55293..ad9bbd6 100644
--- a/docs/topics/http/sessions.txt
+++ b/docs/topics/http/sessions.txt
@@ -573,6 +573,22 @@ that is, if any of its dictionary values have been assigned or deleted.
 
 .. _Django settings: ../settings/
 
+Management commands
+===================
+
+.. highlight:: console
+
+``django.contrib.sessions`` exposes one management commands.
+
+cleansessions
+-------------
+
+.. django-admin:: cleansessions
+
+Cleans expired sessions from database.
+
+.. versionadded:: 1.5
+
 Technical details
 =================
 
