diff -ru -x '*.pyc' /usr/lib/python2.4/site-packages/cherrypy/_cpserver.py cherrypy/_cpserver.py
--- /usr/lib/python2.4/site-packages/cherrypy/_cpserver.py	2007-08-05 19:04:44.000000000 -0500
+++ cherrypy/_cpserver.py	2009-01-24 09:17:43.000000000 -0600
@@ -52,6 +52,7 @@
     instance = None
     ssl_certificate = None
     ssl_private_key = None
+    ssl_certificate_chain = None
     
     def __init__(self):
         self.httpservers = {}
diff -ru -x '*.pyc' /usr/lib/python2.4/site-packages/cherrypy/_cpwsgi.py cherrypy/_cpwsgi.py
--- /usr/lib/python2.4/site-packages/cherrypy/_cpwsgi.py	2007-08-05 19:04:44.000000000 -0500
+++ cherrypy/_cpwsgi.py	2009-01-24 09:17:45.000000000 -0600
@@ -373,4 +373,5 @@
         self.protocol = server.protocol_version
         self.ssl_certificate = server.ssl_certificate
         self.ssl_private_key = server.ssl_private_key
+        self.ssl_certificate_chain = server.ssl_certificate_chain
 
diff -ru -x '*.pyc' /usr/lib/python2.4/site-packages/cherrypy/wsgiserver/__init__.py cherrypy/wsgiserver/__init__.py
--- /usr/lib/python2.4/site-packages/cherrypy/wsgiserver/__init__.py	2007-08-05 19:06:33.000000000 -0500
+++ cherrypy/wsgiserver/__init__.py	2009-01-24 09:28:50.000000000 -0600
@@ -749,6 +749,7 @@
     
     ssl_certificate: the filename of the server SSL certificate.
     ssl_privatekey: the filename of the server's private key file.
+    ssl_certificate_chain: the filename of the optional certificate chain.
     
     If either of these is None (both are None by default), this server
     will not use SSL. If both are given and are valid, they will be read
@@ -764,6 +765,7 @@
     # Paths to certificate and private key files
     ssl_certificate = None
     ssl_private_key = None
+    ssl_certificate_chain = None
     
     def __init__(self, bind_addr, wsgi_app, numthreads=10, server_name=None,
                  max=-1, request_queue_size=5, timeout=10):
@@ -886,6 +888,8 @@
             ctx = SSL.Context(SSL.SSLv23_METHOD)
             ctx.use_privatekey_file(self.ssl_private_key)
             ctx.use_certificate_file(self.ssl_certificate)
+            if self.ssl_certificate_chain:
+                ctx.use_certificate_chain_file(self.ssl_certificate_chain)
             self.socket = SSLConnection(ctx, self.socket)
             self.populate_ssl_environ()
         self.socket.bind(self.bind_addr)

