diff --git a/bin/mutalyzer-soap-service.wsgi b/bin/mutalyzer-soap-service.wsgi
index 5467bb910f1a57a0c3d923e38fb15c7dfd25f8f6..31f7b79770a3187081041b2a84018f3e7af49fe7 100755
--- a/bin/mutalyzer-soap-service.wsgi
+++ b/bin/mutalyzer-soap-service.wsgi
@@ -23,15 +23,14 @@ To start the built-in HTTP server on port 8081:
 
 import sys
 from wsgiref.simple_server import make_server
+from spyne.server.wsgi import WsgiApplication
 from mutalyzer.services import soap
 
 
 DEFAULT_PORT = 8081
 
 
-# Unfortunately we cannot instantiate wsgi.Application here, see the note
-# near the bottom of mutalyzer/services/soap.py.
-application = soap.wsgi_application
+application = WsgiApplication(soap.application)
 
 
 if __name__ == '__main__':
diff --git a/mutalyzer/services/soap.py b/mutalyzer/services/soap.py
index 715a2456c12734c4941ebe17104656fc5425b763..5674e6d240e7468269c55acb1cb66b62323ce1e3 100644
--- a/mutalyzer/services/soap.py
+++ b/mutalyzer/services/soap.py
@@ -5,7 +5,6 @@ Mutalyzer SOAP/1.1 web service.
 
 from spyne.application import Application
 from spyne.protocol.soap import Soap11
-from spyne.server.wsgi import WsgiApplication
 
 import mutalyzer
 from mutalyzer.services import rpc
@@ -16,11 +15,3 @@ application = Application([rpc.MutalyzerService], tns=mutalyzer.SOAP_NAMESPACE,
                           in_protocol=Soap11(validator='lxml'),
                           out_protocol=Soap11(),
                           name='Mutalyzer')
-
-
-# Below we define WSGI applications for use with e.g. Apache/mod_wsgi.
-# Note: We would like to create the wsgi.Application instance only in the
-#     bin/mutalyzer-webservice.wsgi script, but unfortunately this breaks the
-#     get_interface_document method of spyne which we use to generate API
-#     documentation in website.py.
-wsgi_application = WsgiApplication(application)
diff --git a/mutalyzer/website.py b/mutalyzer/website.py
index bb1787fe2c9022a57fa29a66e15dd4475da8383d..138175231e88ccce507db12f60f7ac75d42c9388 100644
--- a/mutalyzer/website.py
+++ b/mutalyzer/website.py
@@ -30,7 +30,7 @@ import pkg_resources
 from cStringIO import StringIO
 from simpletal import simpleTALES
 from simpletal import simpleTAL
-from spyne.interface.wsdl import Wsdl11
+from spyne.server.http import HttpBase
 
 import mutalyzer
 from mutalyzer import util
@@ -1541,9 +1541,11 @@ class SoapApi:
         @todo: Cache this transformation.
         """
         url = web.ctx.homedomain + web.ctx.homepath + SERVICE_SOAP_LOCATION
-        wsdl = Wsdl11(soap.application.interface)
-        wsdl.build_interface_document(url)
-        wsdl_handle = StringIO(wsdl.get_interface_document())
+
+        soap_server = HttpBase(soap.application)
+        soap_server.doc.wsdl11.build_interface_document(url)
+        wsdl_handle = StringIO(soap_server.doc.wsdl11.get_interface_document())
+
         xsl_handle = open(os.path.join(
                 pkg_resources.resource_filename('mutalyzer', 'templates'),
                 'wsdl-viewer.xsl'), 'r')