diff --git a/resources/qml/MatrixText.qml b/resources/qml/MatrixText.qml
index 65d66315bb469f0d82c05d4c07f46748f6070e4b..9129b15437899732a521a21b8a10b23770ab2d86 100644
--- a/resources/qml/MatrixText.qml
+++ b/resources/qml/MatrixText.qml
@@ -7,6 +7,7 @@ import QtQuick.Controls 2.3
 import im.nheko 1.0
 
 TextEdit {
+    id: r
     textFormat: TextEdit.RichText
     readOnly: true
     focus: false
@@ -24,4 +25,8 @@ TextEdit {
         cursorShape: hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
     }
 
+    Component.onCompleted: {
+        TimelineManager.fixImageRendering(r.textDocument, r)
+    }
+
 }
diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp
index b7fd4093d98c914744fc71cdc4da60b740499121..b39ef615ae9a9b9bbc09324e624d71bafc11f231 100644
--- a/src/timeline/TimelineViewManager.cpp
+++ b/src/timeline/TimelineViewManager.cpp
@@ -681,3 +681,13 @@ TimelineViewManager::forwardMessageToRoom(mtx::events::collections::TimelineEven
           },
           *e);
 }
+
+//! WORKAROUND(Nico): for https://bugreports.qt.io/browse/QTBUG-93281
+void
+TimelineViewManager::fixImageRendering(QQuickTextDocument *t, QQuickItem *i)
+{
+        if (t) {
+                QObject::connect(
+                  t->textDocument(), SIGNAL(imagesLoaded()), i, SLOT(updateWholeDocument()));
+        }
+}
diff --git a/src/timeline/TimelineViewManager.h b/src/timeline/TimelineViewManager.h
index 556bcf4c3ac428aa5f850422b207c9921dbcbc2e..15b4f523d045b1ddb1ee0c2c4413e30c2ee861f3 100644
--- a/src/timeline/TimelineViewManager.h
+++ b/src/timeline/TimelineViewManager.h
@@ -5,6 +5,8 @@
 #pragma once
 
 #include <QHash>
+#include <QQuickItem>
+#include <QQuickTextDocument>
 #include <QQuickView>
 #include <QQuickWidget>
 #include <QSharedPointer>
@@ -68,6 +70,8 @@ public:
         Q_INVOKABLE void openLeaveRoomDialog(QString roomid) const;
         Q_INVOKABLE void removeVerificationFlow(DeviceVerificationFlow *flow);
 
+        Q_INVOKABLE void fixImageRendering(QQuickTextDocument *t, QQuickItem *i);
+
         void verifyUser(QString userid);
         void verifyDevice(QString userid, QString deviceid);