Index: django/test/client.py
===================================================================
--- django/test/client.py	(revision 17563)
+++ django/test/client.py	(working copy)
@@ -497,8 +497,19 @@
         not available.
         """
         user = authenticate(**credentials)
-        if user and user.is_active \
-                and 'django.contrib.sessions.middleware.SessionMiddleware' in settings.MIDDLEWARE_CLASSES:
+        sessions_enabled = False
+        if user and user.is_active:
+            from django.contrib.sessions.middleware import SessionMiddleware
+            for middleware in settings.MIDDLEWARE_CLASSES:
+                try:
+                    mod, dot, klass_name = middleware.rpartition('.')
+                    mod = import_module(mod)
+                    if issubclass(getattr(mod, klass_name, None), SessionMiddleware):
+                        sessions_enabled = True
+                        break
+                except ImportError:
+                    continue
+        if sessions_enabled:
             engine = import_module(settings.SESSION_ENGINE)
 
             # Create a fake request to store login details.
