diff --git a/resources/qml/dialogs/ImageOverlay.qml b/resources/qml/dialogs/ImageOverlay.qml
index d7ea7b0e3704848215d877fec5b225f6b4444b93..2e1261d3e2cafbaaec977ac1f859018bebd06508 100644
--- a/resources/qml/dialogs/ImageOverlay.qml
+++ b/resources/qml/dialogs/ImageOverlay.qml
@@ -44,6 +44,7 @@ Window {
             fillMode: Image.PreserveAspectFit
             smooth: true
             mipmap: true
+            property bool loaded: status == Image.Ready
         }
 
         MxcAnimatedImage {
@@ -57,30 +58,30 @@ Window {
         }
 
         BoundaryRule on scale {
-            enabled: img.loaded
+            enabled: img.loaded || mxcimage.loaded
             id: sbr
             minimum: 0.1
-            maximum: 100
-            minimumOvershoot: 0.02; maximumOvershoot: 100
+            maximum: 10
+            minimumOvershoot: 0.02; maximumOvershoot: 10.02
         }
 
-        //BoundaryRule on x {
-        //    enabled: img.loaded
-        //    id: xbr
-        //    minimum: -100
-        //    maximum: imageOverlay.width - img.width + 100
-        //    minimumOvershoot: 100; maximumOvershoot: 100
-        //    overshootFilter: BoundaryRule.Peak
-        //}
-
-        //BoundaryRule on y {
-        //    enabled: img.loaded
-        //    id: ybr
-        //    minimum: -100
-        //    maximum: imageOverlay.height - img.height + 100
-        //    minimumOvershoot: 100; maximumOvershoot: 100
-        //    overshootFilter: BoundaryRule.Peak
-        //}
+        BoundaryRule on x {
+           enabled: img.loaded || mxcimage.loaded
+           id: xbr
+           minimum: -100
+           maximum: imageOverlay.width - img.width + 100
+           minimumOvershoot: 100; maximumOvershoot: 100
+           overshootFilter: BoundaryRule.Peak
+        }
+
+        BoundaryRule on y {
+           enabled: img.loaded || mxcimage.loaded
+           id: ybr
+           minimum: -100
+           maximum: imageOverlay.height - img.height + 100
+           minimumOvershoot: 100; maximumOvershoot: 100
+           overshootFilter: BoundaryRule.Peak
+        }
 
         PinchHandler {
             onActiveChanged: if (!active) sbr.returnToBounds();
@@ -92,10 +93,10 @@ Window {
         }
 
         DragHandler {
-            //onActiveChanged: if (!active) {
-            //    xbr.returnToBounds();
-            //    ybr.returnToBounds();
-            //}
+            onActiveChanged: if (!active) {
+               xbr.returnToBounds();
+               ybr.returnToBounds();
+            }
         }
 
         HoverHandler {
diff --git a/resources/qml/dialogs/RawMessageDialog.qml b/resources/qml/dialogs/RawMessageDialog.qml
index 5da550a69bbf991d6ad614979afe36ddc41241dc..34104394e1a4cc70aea1478b211507c908faec48 100644
--- a/resources/qml/dialogs/RawMessageDialog.qml
+++ b/resources/qml/dialogs/RawMessageDialog.qml
@@ -38,6 +38,8 @@ ApplicationWindow {
             readOnly: true
             textFormat: Text.PlainText
 
+            anchors.fill: parent
+
             background: Rectangle {
                 color: Nheko.colors.base
             }