diff --git a/src/chat_control.py b/src/chat_control.py
index e5886c2be3fc4d088f9481b12e4ab698634a9567..dc8a0a1e3b68f03e954cdc97060614415be9b3ac 100644
--- a/src/chat_control.py
+++ b/src/chat_control.py
@@ -74,6 +74,9 @@ if gajim.config.get('use_speller') and HAS_GTK_SPELL:
 			spell.set_language(langs[lang])
 		except OSError:
 			del langs[lang]
+	if spell:
+		spell.detach()
+	del tv
 
 ################################################################################
 class ChatControlBase(MessageControl):
@@ -2346,6 +2349,10 @@ class ChatControl(ChatControlBase):
 				self.handlers[i].disconnect(i)
 			del self.handlers[i]
 		self.conv_textview.del_handlers()
+		if gajim.config.get('use_speller') and HAS_GTK_SPELL:
+			spell_obj = gtkspell.get_from_text_view(self.msg_textview)
+			if spell_obj:
+				spell_obj.detach()
 		self.msg_textview.destroy()
 
 	def minimizable(self):