diff --git a/src/messagesadapter.cpp b/src/messagesadapter.cpp
index 067ddce22934b723d8ef70b3801ca4f909713b12..cd84c91fa69e9355b9d35bc9a9d2b4a1eac8069d 100644
--- a/src/messagesadapter.cpp
+++ b/src/messagesadapter.cpp
@@ -103,17 +103,6 @@ MessagesAdapter::setupChatView(const QString& convUid)
                   !convInfo.isNotASwarm(),
                   convInfo.needsSyncing);
 
-    // Type Indicator (contact). TODO: Not shown when invitation request?
-    contactIsComposing(convInfo.uid, "", false);
-    connect(lrcInstance_->getCurrentConversationModel(),
-            &ConversationModel::composingStatusChanged,
-            [this](const QString& convUid, const QString& contactUri, bool isComposing) {
-                if (!settingsManager_->getValue(Settings::Key::EnableTypingIndicator).toBool()) {
-                    return;
-                }
-                contactIsComposing(convUid, contactUri, isComposing);
-            });
-
     // Draft and message content set up.
     Utils::oneShotConnect(qmlObj_,
                           SIGNAL(sendMessageContentSaved(const QString&)),
@@ -138,6 +127,7 @@ MessagesAdapter::connectConversationModel()
     QObject::disconnect(interactionRemovedConnection_);
     QObject::disconnect(interactionStatusUpdatedConnection_);
     QObject::disconnect(conversationUpdatedConnection_);
+    QObject::disconnect(composingConnection_);
 
     newInteractionConnection_
         = QObject::connect(currentConversationModel,
@@ -197,6 +187,17 @@ MessagesAdapter::connectConversationModel()
                                if (auto optConv = convModel->getConversationForUid(conversationId))
                                    setConversationProfileData(optConv->get());
                            });
+    composingConnection_
+        = connect(currentConversationModel,
+            &ConversationModel::composingStatusChanged,
+            [this](const QString& convUid, const QString& contactUri, bool isComposing) {
+                if (convUid != lrcInstance_->get_selectedConvUid())
+                    return;
+                if (!settingsManager_->getValue(Settings::Key::EnableTypingIndicator).toBool()) {
+                    return;
+                }
+                contactIsComposing(contactUri, isComposing);
+            });
 }
 
 void
@@ -698,16 +699,14 @@ MessagesAdapter::setSendMessageContent(const QString& content)
 }
 
 void
-MessagesAdapter::contactIsComposing(const QString& uid, const QString& contactUri, bool isComposing)
+MessagesAdapter::contactIsComposing(const QString& contactUri, bool isComposing)
 {
     auto* convModel = lrcInstance_->getCurrentConversationModel();
     auto convInfo = convModel->getConversationForUid(lrcInstance_->get_selectedConvUid());
     if (!convInfo)
         return;
     auto& conv = convInfo->get();
-    bool showIsComposing = conv.isNotASwarm()
-                               ? uid.isEmpty() && conv.participants.first() == contactUri
-                               : uid == conv.uid;
+    bool showIsComposing = conv.participants.first() == contactUri;
     if (showIsComposing) {
         QString s
             = QString::fromLatin1("showTypingIndicator(`%1`, %2);").arg(contactUri).arg(isComposing);
diff --git a/src/messagesadapter.h b/src/messagesadapter.h
index bc80e7409b3c0c6ef8a30282bec36e2ee71f5bef..ffb0c4e2191b0cde7298c16aa7b482361831bcdf 100644
--- a/src/messagesadapter.h
+++ b/src/messagesadapter.h
@@ -96,7 +96,7 @@ protected:
     void setMessagesFileContent(const QString& path);
     void removeInteraction(const QString& interactionId);
     void setSendMessageContent(const QString& content);
-    void contactIsComposing(const QString& convUid, const QString& contactUri, bool isComposing);
+    void contactIsComposing(const QString& contactUri, bool isComposing);
 
 Q_SIGNALS:
     void contactBanned();
@@ -126,6 +126,7 @@ private:
     QMetaObject::Connection interactionRemovedConnection_;
     QMetaObject::Connection newMessagesAvailableConnection_;
     QMetaObject::Connection conversationUpdatedConnection_;
+    QMetaObject::Connection composingConnection_;
 
     AppSettingsManager* settingsManager_;
 };