Index: twisted/web/client.py
===================================================================
--- twisted/web/client.py	(revision 36754)
+++ twisted/web/client.py	(working copy)
@@ -614,7 +614,7 @@
         factory.noPage(defer.CancelledError())
         connector.disconnect()
     scheme, host, port, path = _parse(url)
-    factory = factoryFactory(url, *args, **kwargs)
+    factory = factoryFactory(url, canceller=cancel, *args, **kwargs)
     if scheme == b'https':
         from twisted.internet import ssl
         if contextFactory is None:
