diff --git a/src/session.py b/src/session.py
index fadada2e63d4f3d5bc418b336b60fe106a3b80ae..c736857900974f1eb3cfd96c0eeb11393ff6ce7b 100644
--- a/src/session.py
+++ b/src/session.py
@@ -44,17 +44,18 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
 
 		self.control = None
 
-	def acknowledge_termination(self):
+	def detach_from_control(self):
 		if self.control:
+			self.control.no_autonegotiation = False
 			self.control.set_session(None)
 
+	def acknowledge_termination(self):
+		self.detach_from_control()
 		stanza_session.EncryptedStanzaSession.acknowledge_termination(self)
 
 	def terminate(self):
 		stanza_session.EncryptedStanzaSession.terminate(self)
-
-		if self.control:
-			self.control.set_session(None)
+		self.detach_from_control()
 
 	# extracts chatstate from a <message/> stanza
 	def get_chatstate(self, msg, msgtxt):