diff --git a/resources/qml/Avatar.qml b/resources/qml/Avatar.qml
index 34b029a606a4333ff0a05b4f3c066bf5dc58048d..4adff57264a3ae225e9068a44a9b946dcaa2e779 100644
--- a/resources/qml/Avatar.qml
+++ b/resources/qml/Avatar.qml
@@ -33,7 +33,7 @@ Rectangle {
         asynchronous: true
         fillMode: Image.PreserveAspectCrop
         mipmap: true
-        smooth: false
+        smooth: true
         sourceSize.width: avatar.width
         sourceSize.height: avatar.height
         layer.enabled: true
diff --git a/resources/qml/delegates/ImageMessage.qml b/resources/qml/delegates/ImageMessage.qml
index 5c3dac9525d1272589e5f145f6e6401db43362d4..e8e325f06906e9c5ba80f2d10c2e6ead7a403351 100644
--- a/resources/qml/delegates/ImageMessage.qml
+++ b/resources/qml/delegates/ImageMessage.qml
@@ -29,6 +29,8 @@ Item {
         source: model.data.url.replace("mxc://", "image://MxcImage/")
         asynchronous: true
         fillMode: Image.PreserveAspectFit
+        smooth: true
+        mipmap: true
 
         MouseArea {
             id: mouseArea
diff --git a/src/ui/Avatar.cpp b/src/ui/Avatar.cpp
index 70ebfcf2ef3fb588df2d9103d0f648ed5360256e..0d1bb92428a33cc5e448bd3ba98bc739136cd03a 100644
--- a/src/ui/Avatar.cpp
+++ b/src/ui/Avatar.cpp
@@ -121,7 +121,9 @@ Avatar::paintEvent(QPaintEvent *)
         bool rounded = QSettings().value("user/avatar_circles", true).toBool();
 
         QPainter painter(this);
-        painter.setRenderHint(QPainter::Antialiasing);
+
+        painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform |
+                               QPainter::TextAntialiasing);
 
         QRectF r     = rect();
         const int hs = size_ / 2;
diff --git a/src/ui/Painter.h b/src/ui/Painter.h
index 2bb0981b80be22d83eb6e00d369d9066d26c39ae..c69dca95b8cf6356cf380f0b4bb5f42d43d64b07 100644
--- a/src/ui/Painter.h
+++ b/src/ui/Painter.h
@@ -139,18 +139,10 @@ public:
         PainterHighQualityEnabler(Painter &p)
           : _painter(p)
         {
-                static constexpr QPainter::RenderHint Hints[] = {QPainter::Antialiasing,
-                                                                 QPainter::SmoothPixmapTransform,
-                                                                 QPainter::TextAntialiasing};
-
-                auto hints = _painter.renderHints();
-                for (const auto &hint : Hints) {
-                        if (!(hints & hint))
-                                hints_ |= hint;
-                }
+                hints_ = QPainter::Antialiasing | QPainter::SmoothPixmapTransform |
+                         QPainter::TextAntialiasing;
 
-                if (hints_)
-                        _painter.setRenderHints(hints_);
+                _painter.setRenderHints(hints_);
         }
 
         ~PainterHighQualityEnabler()