diff --git a/resources/qml/Avatar.qml b/resources/qml/Avatar.qml
index c3e8acdbc1b8a536457e76feccf7c98f1f168f00..4a9a565cd71db5ed2de8293f633efd8a8f9de006 100644
--- a/resources/qml/Avatar.qml
+++ b/resources/qml/Avatar.qml
@@ -20,7 +20,7 @@ Rectangle {
 
     width: 48
     height: 48
-    radius: Settings.avatarCircles ? height / 2 : 3
+    radius: Settings.avatarCircles ? height / 2 : height / 8
     color: Nheko.colors.alternateBase
     Component.onCompleted: {
         mouseArea.clicked.connect(clicked);
@@ -49,7 +49,7 @@ Rectangle {
         smooth: true
         sourceSize.width: avatar.width
         sourceSize.height: avatar.height
-        source: avatar.url ? (avatar.url + "?radius=" + radius + ((avatar.crop) ? "" : "&scale")) : ""
+        source: avatar.url ? (avatar.url + "?radius=" + (Settings.avatarCircles ? 100.0 : 25.0) + ((avatar.crop) ? "" : "&scale")) : ""
 
         MouseArea {
             id: mouseArea
@@ -71,7 +71,7 @@ Rectangle {
         visible: !!userid
         height: avatar.height / 6
         width: height
-        radius: Settings.avatarCircles ? height / 2 : height / 4
+        radius: Settings.avatarCircles ? height / 2 : height / 8
         color: {
             switch (TimelineManager.userPresence(userid)) {
             case "online":
diff --git a/src/MxcImageProvider.cpp b/src/MxcImageProvider.cpp
index 58078a3b44495e559a58c5c0fe150c20f217add1..056374a992a5d88dbf82773cc251c20b3a8a0ad9 100644
--- a/src/MxcImageProvider.cpp
+++ b/src/MxcImageProvider.cpp
@@ -82,7 +82,7 @@ clipRadius(QImage img, double radius)
         painter.setRenderHint(QPainter::SmoothPixmapTransform, true);
 
         QPainterPath ppath;
-        ppath.addRoundedRect(img.rect(), radius, radius);
+        ppath.addRoundedRect(img.rect(), radius, radius, Qt::SizeMode::RelativeSize);
 
         painter.setClipPath(ppath);
         painter.drawImage(img.rect(), img);