diff --git a/aioxmpp/callbacks.py b/aioxmpp/callbacks.py
index <HASH>..<HASH> 100644
--- a/aioxmpp/callbacks.py
+++ b/aioxmpp/callbacks.py
@@ -534,7 +534,7 @@ class AdHocSignal(AbstractAdHocSignal):
         future from the signal, just cancel it.
         """
         fut = asyncio.Future()
-        self.connect(fut, self.WEAK)
+        self.connect(fut, self.AUTO_FUTURE)
         return fut
 
     __call__ = fire
diff --git a/docs/api/changelog.rst b/docs/api/changelog.rst
index <HASH>..<HASH> 100644
--- a/docs/api/changelog.rst
+++ b/docs/api/changelog.rst
@@ -91,6 +91,8 @@ Version 0.9
 * Fix bug in :class:`aioxmpp.EntityCapsService` rendering it useless for
   providing caps hashes to other entities.
 
+* Fix :meth:`aioxmpp.callbacks.AdHocSignal.future`.
+
 .. _api-changelog-0.8:
 
 Version 0.8
diff --git a/tests/test_callbacks.py b/tests/test_callbacks.py
index <HASH>..<HASH> 100644
--- a/tests/test_callbacks.py
+++ b/tests/test_callbacks.py
@@ -1041,7 +1041,7 @@ class TestAdHocSignal(unittest.TestCase):
             [
                 unittest.mock.call(
                     Future(),
-                    signal.WEAK,
+                    signal.AUTO_FUTURE,
                 ),
             ]
         )
Fix AdHocSignal.future