diff --git a/callwidget.cpp b/callwidget.cpp
index 168aea1..deed297 100644
--- a/callwidget.cpp
+++ b/callwidget.cpp
@@ -47,6 +47,7 @@
     ui->muteMicButton->setCheckable(true);
     ui->muteSpeakerButton->setCheckable(true);
     ui->callInvite->setVisible(false);
+    ui->videoWidget->setVisible(false);
 
     setActualCall(nullptr);
     videoRenderer_ = nullptr;
diff --git a/videowidget.cpp b/videowidget.cpp
index 84519a7..16a8c2a 100644
--- a/videowidget.cpp
+++ b/videowidget.cpp
@@ -34,6 +34,11 @@
             SIGNAL(rendererAdded(Call*,Video::Renderer*)),
             this, SLOT(callInitiated(Call*, Video::Renderer*)),
             Qt::ConnectionType::DirectConnection);
+
+    QPalette pal(palette());
+    pal.setColor(QPalette::Background, Qt::black);
+    this->setAutoFillBackground(true);
+    this->setPalette(pal);
 }
 
 VideoWidget::~VideoWidget()
@@ -78,16 +83,23 @@
     Q_UNUSED(evt)
     QMutexLocker {&lock_};
     QPainter painter(this);
-    //painter.drawRoundedRect(0,5,width()-5, height()-7,3,3);
-    if (distantFrame_ && renderer_ && renderer_->isRendering())
-          painter.drawImage(QRect(0,0,width(),height()),*(distantFrame_));
+
+    if (distantFrame_ && renderer_ && renderer_->isRendering()) {
+        auto scaledDistant = distantFrame_->scaled(size(), Qt::KeepAspectRatio);
+        auto xDiff = (width() - scaledDistant.width()) / 2;
+        auto yDiff = (height() - scaledDistant.height()) /2;
+        painter.drawImage(QRect(xDiff,yDiff,scaledDistant.width(),scaledDistant.height()), scaledDistant);
+    }
     if (previewFrame_ && previewRenderer_ && previewRenderer_->isRendering()) {
-        int previewHeight = !renderer_ ? height() : height()/4;
-        int previewWidth = !renderer_  ? width() : width()/4;
-        int yPos = !renderer_ ? 0 : height() - previewHeight;
-        int xPos = !renderer_ ? 0 : width() - previewWidth;
-        painter.drawImage(QRect(xPos,yPos,previewWidth,previewHeight),
-                          *(previewFrame_));
+        auto previewHeight = !renderer_ ? height() : height()/4;
+        auto previewWidth = !renderer_  ? width() : width()/4;
+        auto scaledPreview = previewFrame_->scaled(previewWidth, previewHeight, Qt::KeepAspectRatio);
+        auto xDiff = (previewWidth - scaledPreview.width()) / 2;
+        auto yDiff = (previewHeight - scaledPreview.height()) / 2;
+        auto yPos = !renderer_ ? yDiff : height() - previewHeight - previewMargin_;
+        auto xPos = !renderer_ ? xDiff : width() - scaledPreview.width() - previewMargin_;
+        painter.drawImage(QRect(xPos,yPos,scaledPreview.width(),scaledPreview.height()),
+                          scaledPreview);
     }
     painter.end();
 }
diff --git a/videowidget.h b/videowidget.h
index 69edf7d..ea7d6ee 100644
--- a/videowidget.h
+++ b/videowidget.h
@@ -55,6 +55,7 @@
     QPixmap *previewPix_;
     QWidget *oldParent_;
     QSize oldSize_;
+    constexpr static int previewMargin_ = 15;
 };
 
 #endif // VIDEOWIDGET_H
