diff --git a/gajim/chat_control.py b/gajim/chat_control.py
index 79e5aeead7c165eefbcc794790d5214e0f16f5ea..eedeb0f29db0f24ee5bad5af31c657a5aaf1a10e 100644
--- a/gajim/chat_control.py
+++ b/gajim/chat_control.py
@@ -765,7 +765,7 @@ def _set_jingle_state(self, jingle_type: str, state: str, sid: str = None,
         new_sid = None
         if jingle_state == self.JINGLE_STATE_NULL:
             new_sid = None
-        if state in ('connection_received', 'connecting'):
+        if state in ('connection_received', 'connecting', 'connected'):
             new_sid = sid
 
         jingle.state = jingle_state
@@ -888,9 +888,6 @@ def close_jingle_content(self, jingle_type: str) -> None:
         if not jingle.sid:
             return
 
-        jingle.sid = None
-        jingle.state = self.JINGLE_STATE_NULL
-
         con = app.connections[self.account]
         session = con.get_module('Jingle').get_jingle_session(
             self.contact.get_full_jid(), jingle.sid)
@@ -898,6 +895,10 @@ def close_jingle_content(self, jingle_type: str) -> None:
             content = session.get_content(jingle_type)
             if content:
                 session.remove_content(content.creator, content.name)
+
+        jingle.sid = None
+        jingle.state = self.JINGLE_STATE_NULL
+
         var = GLib.Variant.new_boolean(False)
 
         jingle.action.change_state(var)