diff --git a/src/app/commoncomponents/TextMessageDelegate.qml b/src/app/commoncomponents/TextMessageDelegate.qml
index 7b3f756c5a72d209deb572d2f2210cceb264a98b..41f2ecc85b91e821a43c0c7b6408ee529b7fff9d 100644
--- a/src/app/commoncomponents/TextMessageDelegate.qml
+++ b/src/app/commoncomponents/TextMessageDelegate.qml
@@ -52,7 +52,12 @@ SBSMessageBase {
 
             padding: isEmojiOnly ? 0 : JamiTheme.preferredMarginSize
             anchors.right: isOutgoing ? parent.right : undefined
-            text: Body === "" ? "*("+ JamiStrings.deletedMessage +")*" : Body
+            text: {
+                if (LinkifiedBody !== "" && Linkified.length === 0) {
+                    MessagesAdapter.parseMessageUrls(Id, Body, UtilsAdapter.getAppValue(Settings.DisplayHyperlinkPreviews), root.colorUrl)
+                }
+                return (LinkifiedBody !== "") ? LinkifiedBody :  "*("+ JamiStrings.deletedMessage +")*"
+            }
             horizontalAlignment: Text.AlignLeft
 
             HoverHandler {
@@ -268,7 +273,7 @@ SBSMessageBase {
     opacity: 0
     Behavior on opacity { NumberAnimation { duration: 100 } }
     Component.onCompleted: {
-        if (!Linkified) {
+        if (Linkified.length === 0) {
             MessagesAdapter.parseMessageUrls(Id, Body, UtilsAdapter.getAppValue(Settings.DisplayHyperlinkPreviews), root.colorUrl)
         }
         opacity = 1
diff --git a/src/app/mainview/components/EditContainer.qml b/src/app/mainview/components/EditContainer.qml
index 55d5a192d6880b2cc5952fc9c2c648cf88234406..e4576fc3c4048395efe3b332df1319aea1cc810b 100644
--- a/src/app/mainview/components/EditContainer.qml
+++ b/src/app/mainview/components/EditContainer.qml
@@ -34,8 +34,7 @@ Rectangle {
     property var body: {
         if (MessagesAdapter.editId === "")
             return ""
-
-        return MessagesAdapter.dataForInteraction(MessagesAdapter.editId, MessageList.Body)
+        return MessagesAdapter.dataForInteraction(MessagesAdapter.editId, MessageList.LinkifiedBody)
     }
 
     RowLayout {
diff --git a/src/libclient/api/interaction.h b/src/libclient/api/interaction.h
index ea7f9f9a0d32fc02eec388fa77ab7c302451ec1a..26b5a3861aa6ae252e6ee8f3880e21a965752685 100644
--- a/src/libclient/api/interaction.h
+++ b/src/libclient/api/interaction.h
@@ -312,7 +312,7 @@ struct Info
     bool isRead = false;
     MapStringString commit;
     QVariantMap linkPreviewInfo = {};
-    bool linkified = false;
+    QString linkified;
     QVariantMap reactions;
     QString react_to;
     QVector<Body> previousBodies;
diff --git a/src/libclient/messagelistmodel.cpp b/src/libclient/messagelistmodel.cpp
index 0c55b0725456b2fd65d90b19b5bc2215de2ac27e..19fb865ba12f6976bb2fda612a7cfc1bf5ac5630 100644
--- a/src/libclient/messagelistmodel.cpp
+++ b/src/libclient/messagelistmodel.cpp
@@ -455,6 +455,12 @@ MessageListModel::dataForItem(item_t item, int, int role) const
         return QVariant(item.second.linkPreviewInfo);
     case Role::Linkified:
         return QVariant(item.second.linkified);
+    case Role::LinkifiedBody: {
+        if (!item.second.linkified.isEmpty()) {
+            return QVariant(item.second.linkified);
+        }
+        return QVariant(item.second.body);
+    }
     case Role::ActionUri:
         return QVariant(item.second.commit["uri"]);
     case Role::ConfId:
@@ -474,10 +480,14 @@ MessageListModel::dataForItem(item_t item, int, int role) const
         return QVariant(replyId);
     case Role::ReplyToAuthor:
         return repliedMsg == -1 ? QVariant("") : QVariant(data(repliedMsg, Role::Author));
-    case Role::ReplyToBody:
-        return repliedMsg == -1
-                   ? QVariant("")
-                   : QVariant(data(repliedMsg, Role::Body).toString().replace("\n", " "));
+    case Role::ReplyToBody: {
+        if (repliedMsg == -1)
+            return QVariant("");
+        auto linkified = data(repliedMsg, Role::Linkified).toString();
+        if (!linkified.isEmpty())
+            return QVariant(linkified.replace("\n", " "));
+        return QVariant(data(repliedMsg, Role::Body).toString().replace("\n", " "));
+    }
     case Role::TotalSize:
         return QVariant(item.second.commit["totalSize"].toInt());
     case Role::TransferName:
@@ -545,9 +555,8 @@ MessageListModel::linkifyMessage(const QString& messageId, const QString& linkif
         return;
     }
     QModelIndex modelIndex = QAbstractListModel::index(index, 0);
-    interactions_[index].second.body = linkified;
-    interactions_[index].second.linkified = true;
-    Q_EMIT dataChanged(modelIndex, modelIndex, {Role::Body, Role::Linkified});
+    interactions_[index].second.linkified = linkified;
+    Q_EMIT dataChanged(modelIndex, modelIndex, {Role::Linkified, Role::LinkifiedBody});
 }
 
 void
@@ -700,9 +709,12 @@ MessageListModel::editMessage(const QString& msgId, interaction::Info& info)
             }
         }
         info.body = it->rbegin()->body;
+        info.linkified.clear();
         editedBodies_.erase(it);
         emitDataChanged(msgId,
                         {MessageList::Role::Body,
+                         MessageList::Role::Linkified,
+                         MessageList::Role::LinkifiedBody,
                          MessageList::Role::PreviousBodies,
                          MessageList::Role::IsEmojiOnly});
 
diff --git a/src/libclient/messagelistmodel.h b/src/libclient/messagelistmodel.h
index 12c1e02b6600bd25787f88e791991df8a0b892f2..fc133bd85233e04c4d30bb0bb8709022ae2bfc13 100644
--- a/src/libclient/messagelistmodel.h
+++ b/src/libclient/messagelistmodel.h
@@ -46,6 +46,7 @@ struct Info;
     X(DeviceId) \
     X(LinkPreviewInfo) \
     X(Linkified) \
+    X(LinkifiedBody) \
     X(PreviousBodies) \
     X(Reactions) \
     X(ReplyTo) \