diff --git a/cherrypy/lib/cptools.py b/cherrypy/lib/cptools.py
index <HASH>..<HASH> 100644
--- a/cherrypy/lib/cptools.py
+++ b/cherrypy/lib/cptools.py
@@ -370,7 +370,8 @@ Message: %(error_msg)s
         if path.endswith('login_screen'):
             if self.debug:
                 cherrypy.log('routing %r to login_screen' % path, 'TOOLS.SESSAUTH')
-            return self.login_screen(**request.params)
+            response.body = self.login_screen()
+            return True
         elif path.endswith('do_login'):
             if request.method != 'POST':
                 response.headers['Allow'] = "POST"
cptools.SessionAuth: fix login_screen page handler

The login_screen page handler erroneously returned the formatted HTML page,
which was simply interpreted as a boolean that controls whether the call
to the controller function was suppressed or not.

Set the response.body instead and return a literal True that suppresses the
call to the page handler.