diff --git a/src/RoomInfoListItem.cpp b/src/RoomInfoListItem.cpp
index f135451cf2819bd0c38aa2ac790a221fe6a0df46..8bebb0f50c46cc669679a09a62c7b058013f9703 100644
--- a/src/RoomInfoListItem.cpp
+++ b/src/RoomInfoListItem.cpp
@@ -118,7 +118,7 @@ RoomInfoListItem::RoomInfoListItem(QString room_id, RoomInfo info, QWidget *pare
         // so we can't use them for sorting.
         if (roomType_ == RoomType::Invited)
                 lastMsgInfo_ = {
-                  emptyEventId, "-", "-", "-", "-", QDateTime::currentDateTime().addYears(10)};
+                  emptyEventId, "-", "-", "-", QDateTime::currentDateTime().addYears(10)};
 }
 
 void
@@ -210,33 +210,11 @@ RoomInfoListItem::paintEvent(QPaintEvent *event)
                         p.setFont(QFont{});
                         p.setPen(subtitlePen);
 
-                        // The limit is the space between the end of the avatar and the start of the
-                        // timestamp.
-                        int usernameLimit =
-                          std::max(0, width() - 3 * wm.padding - msgStampWidth - wm.iconSize - 20);
-                        auto userName =
-                          metrics.elidedText(lastMsgInfo_.username, Qt::ElideRight, usernameLimit);
-
-                        p.setFont(QFont{});
-                        p.drawText(QPoint(2 * wm.padding + wm.iconSize, bottom_y), userName);
-
-#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0)
-                        int nameWidth = QFontMetrics(QFont{}).width(userName);
-#else
-                        int nameWidth = QFontMetrics(QFont{}).horizontalAdvance(userName);
-#endif
-                        p.setFont(QFont{});
-
-                        // The limit is the space between the end of the username and the start of
-                        // the timestamp.
-                        int descriptionLimit =
-                          std::max(0,
-                                   width() - 3 * wm.padding - bottomLineWidthLimit - wm.iconSize -
-                                     nameWidth - 5);
+                        int descriptionLimit = std::max(
+                          0, width() - 3 * wm.padding - bottomLineWidthLimit - wm.iconSize);
                         auto description =
                           metrics.elidedText(lastMsgInfo_.body, Qt::ElideRight, descriptionLimit);
-                        p.drawText(QPoint(2 * wm.padding + wm.iconSize + nameWidth, bottom_y),
-                                   description);
+                        p.drawText(QPoint(2 * wm.padding + wm.iconSize, bottom_y), description);
 
                         // We show the last message timestamp.
                         p.save();
diff --git a/src/Utils.cpp b/src/Utils.cpp
index 5a1447ac7b8c5eabc0d94d7b409d9c9f949d3a7c..e27bc99520226774b2c0c87f2f1dae03b953303e 100644
--- a/src/Utils.cpp
+++ b/src/Utils.cpp
@@ -146,11 +146,6 @@ utils::getMessageDescription(const TimelineEvent &event,
                 const auto ts       = QDateTime::fromMSecsSinceEpoch(msg.origin_server_ts);
 
                 DescInfo info;
-                if (sender == localUser)
-                        info.username = QCoreApplication::translate("utils", "You");
-                else
-                        info.username = username;
-
                 info.userid    = sender;
                 info.body      = QString(" %1").arg(messageDescription<Encrypted>());
                 info.timestamp = utils::descriptiveTime(ts);
diff --git a/src/Utils.h b/src/Utils.h
index 225754be4a5eb37ec0fbc2db261ee0cdc00d7fc7..8cb891cc5b584a6ecbe847dc264efabdb5b6d1cf 100644
--- a/src/Utils.h
+++ b/src/Utils.h
@@ -94,38 +94,72 @@ messageDescription(const QString &username = "",
         using Video     = mtx::events::RoomEvent<mtx::events::msg::Video>;
         using Encrypted = mtx::events::EncryptedEvent<mtx::events::msg::Encrypted>;
 
-        // Sometimes the verb form of sent changes in some languages depending on the actor.
-        auto remoteSent = QCoreApplication::translate(
-          "message-description: ", "sent", "For when you are the sender");
-        auto localSent = QCoreApplication::translate(
-          "message-description:", "sent", "For when someone else is the sender");
-        QString sentVerb = isLocal ? localSent : remoteSent;
         if (std::is_same<T, AudioItem>::value || std::is_same<T, Audio>::value) {
-                return QCoreApplication::translate("message-description sent:", "%1 an audio clip")
-                  .arg(sentVerb);
+                if (isLocal)
+                        return QCoreApplication::translate("message-description sent:",
+                                                           "You sent an audio clip");
+                else
+                        return QCoreApplication::translate("message-description sent:",
+                                                           "%1 sent an audio clip")
+                          .arg(username);
         } else if (std::is_same<T, ImageItem>::value || std::is_same<T, Image>::value) {
-                return QCoreApplication::translate("message-description sent:", "%1 an image")
-                  .arg(sentVerb);
+                if (isLocal)
+                        return QCoreApplication::translate("message-description sent:",
+                                                           "You sent an image");
+                else
+                        return QCoreApplication::translate("message-description sent:",
+                                                           "%1 sent an image")
+                          .arg(username);
         } else if (std::is_same<T, FileItem>::value || std::is_same<T, File>::value) {
-                return QCoreApplication::translate("message-description sent:", "%1 a file")
-                  .arg(sentVerb);
+                if (isLocal)
+                        return QCoreApplication::translate("message-description sent:",
+                                                           "You sent a file");
+                else
+                        return QCoreApplication::translate("message-description sent:",
+                                                           "%1 sent a file")
+                          .arg(username);
         } else if (std::is_same<T, VideoItem>::value || std::is_same<T, Video>::value) {
-                return QCoreApplication::translate("message-description sent:", "%1 a video clip")
-                  .arg(sentVerb);
+                if (isLocal)
+                        return QCoreApplication::translate("message-description sent:",
+                                                           "You sent a video");
+                else
+                        return QCoreApplication::translate("message-description sent:",
+                                                           "%1 sent a video")
+                          .arg(username);
         } else if (std::is_same<T, StickerItem>::value || std::is_same<T, Sticker>::value) {
-                return QCoreApplication::translate("message-description sent:", "%1 a sticker")
-                  .arg(sentVerb);
+                if (isLocal)
+                        return QCoreApplication::translate("message-description sent:",
+                                                           "You sent a sticker");
+                else
+                        return QCoreApplication::translate("message-description sent:",
+                                                           "%1 sent a sticker")
+                          .arg(username);
         } else if (std::is_same<T, Notice>::value) {
-                return QCoreApplication::translate("message-description sent:", "%1 a notification")
-                  .arg(sentVerb);
+                if (isLocal)
+                        return QCoreApplication::translate("message-description sent:",
+                                                           "You sent a notification");
+                else
+                        return QCoreApplication::translate("message-description sent:",
+                                                           "%1 sent a notification")
+                          .arg(username);
         } else if (std::is_same<T, Text>::value) {
-                return QString(": %1").arg(body);
+                if (isLocal)
+                        return QCoreApplication::translate("message-description sent:", "You: %1")
+                          .arg(body);
+                else
+                        return QCoreApplication::translate("message-description sent:", "%1: %2")
+                          .arg(username)
+                          .arg(body);
         } else if (std::is_same<T, Emote>::value) {
                 return QString("* %1 %2").arg(username).arg(body);
         } else if (std::is_same<T, Encrypted>::value) {
-                return QCoreApplication::translate("message-description sent:",
-                                                   "%1 an encrypted message")
-                  .arg(sentVerb);
+                if (isLocal)
+                        return QCoreApplication::translate("message-description sent:",
+                                                           "You sent an encrypted message");
+                else
+                        return QCoreApplication::translate("message-description sent:",
+                                                           "%1 sent an encrypted message")
+                          .arg(username);
         } else {
                 return QCoreApplication::translate("utils", "Unknown Message Type");
         }
@@ -144,20 +178,13 @@ createDescriptionInfo(const Event &event, const QString &localUser, const QStrin
         const auto username = Cache::displayName(room_id, sender);
         const auto ts       = QDateTime::fromMSecsSinceEpoch(msg.origin_server_ts);
 
-        bool isText  = std::is_same<T, Text>::value;
-        bool isEmote = std::is_same<T, Emote>::value;
-
-        return DescInfo{
-          QString::fromStdString(msg.event_id),
-          isEmote ? ""
-                  : (sender == localUser ? QCoreApplication::translate("utils", "You") : username),
-          sender,
-          (isText || isEmote)
-            ? messageDescription<T>(
-                username, QString::fromStdString(msg.content.body).trimmed(), sender == localUser)
-            : QString(" %1").arg(messageDescription<T>()),
-          utils::descriptiveTime(ts),
-          ts};
+        return DescInfo{QString::fromStdString(msg.event_id),
+                        sender,
+                        messageDescription<T>(username,
+                                              QString::fromStdString(msg.content.body).trimmed(),
+                                              sender == localUser),
+                        utils::descriptiveTime(ts),
+                        ts};
 }
 
 //! Scale down an image to fit to the given width & height limitations.