diff --git a/callwidget.cpp b/callwidget.cpp
index d92314e08efedbe28196ba9638fb66f26ca5c464..6c4625ddfa98cebd5c04d3e6c7a38dee651f300d 100644
--- a/callwidget.cpp
+++ b/callwidget.cpp
@@ -32,8 +32,6 @@
 
 #include "wizarddialog.h"
 #include "windowscontactbackend.h"
-#include "historydelegate.h"
-#include "contactdelegate.h"
 
 CallWidget::CallWidget(QWidget *parent) :
     NavWidget(Main ,parent),
@@ -92,7 +90,8 @@ CallWidget::CallWidget(QWidget *parent) :
         ui->historyList->setModel(CategorizedHistoryModel::SortedProxy::instance()->model());
         CategorizedHistoryModel::SortedProxy::instance()->model()->sort(0, Qt::DescendingOrder);
         ui->historyList->setHeaderHidden(true);
-        ui->historyList->setItemDelegate(new HistoryDelegate());
+        historyDelegate_ = new HistoryDelegate();
+        ui->historyList->setItemDelegate(historyDelegate_);
         auto idx = CategorizedHistoryModel::SortedProxy::instance()->model()->index(0,0);
         if (idx.isValid())
             ui->historyList->setExpanded(idx, true);
@@ -101,7 +100,8 @@ CallWidget::CallWidget(QWidget *parent) :
 
         CategorizedContactModel::instance()->setSortAlphabetical(false);
         ui->contactView->setModel(CategorizedContactModel::instance());
-        ui->contactView->setItemDelegate(new ContactDelegate());
+        contactDelegate_ = new ContactDelegate();
+        ui->contactView->setItemDelegate(contactDelegate_);
 
         findRingAccount();
 
@@ -115,6 +115,8 @@ CallWidget::~CallWidget()
     delete ui;
     delete spinner_;
     delete menu_;
+    delete historyDelegate_;
+    delete contactDelegate_;
 }
 
 void
diff --git a/callwidget.h b/callwidget.h
index cd65608a88fe027a3dda38888caa4f46236b01fb..55fdf190a12419807b1f91f88270b38e22c80a48 100644
--- a/callwidget.h
+++ b/callwidget.h
@@ -28,6 +28,8 @@
 
 #include "navwidget.h"
 #include "instantmessagingwidget.h"
+#include "historydelegate.h"
+#include "contactdelegate.h"
 
 #include "callmodel.h"
 #include "video/renderer.h"
@@ -73,6 +75,9 @@ private:
     int inputVolume_;
     QMenu *menu_;
     QMovie *spinner_;
+    HistoryDelegate *historyDelegate_;
+    ContactDelegate *contactDelegate_;
+
 private:
     void findRingAccount();
     void setActualCall(Call *value);
diff --git a/configurationwidget.cpp b/configurationwidget.cpp
index bc659e661ab0689eeb98e8eb3101dfd5c472dc28..b7162dfb6d160156d8a9a1ebcfb34b65ea4f0ec6 100644
--- a/configurationwidget.cpp
+++ b/configurationwidget.cpp
@@ -28,7 +28,6 @@
 #include "video/previewmanager.h"
 
 #include "accountserializationadapter.h"
-#include "accountstatedelegate.h"
 
 #include "accountmodel.h"
 #include "protocolmodel.h"
@@ -49,7 +48,8 @@ ConfigurationWidget::ConfigurationWidget(QWidget *parent) :
     ui->setupUi(this);
 
     ui->accountView->setModel(accountModel_);
-    ui->accountView->setItemDelegate(new AccountStateDelegate());
+    accountStateDelegate_ = new AccountStateDelegate();
+    ui->accountView->setItemDelegate(accountStateDelegate_);
 
     isLoading_ = true;
     ui->deviceBox->setModel(deviceModel_);
@@ -81,6 +81,7 @@ void ConfigurationWidget::atExit() {
 ConfigurationWidget::~ConfigurationWidget()
 {
     delete ui;
+    delete accountStateDelegate_;
 }
 
 void
diff --git a/configurationwidget.h b/configurationwidget.h
index 176351fea4309117530379735784006fe6915c6e..6f0ffa788ac57fba9456793bccaf707d1a890283 100644
--- a/configurationwidget.h
+++ b/configurationwidget.h
@@ -24,6 +24,7 @@
 
 #include "navwidget.h"
 #include "accountdetails.h"
+#include "accountstatedelegate.h"
 
 #include "accountmodel.h"
 #include "video/devicemodel.h"
@@ -68,6 +69,7 @@ private:
     CodecModel* codecModel_;
     bool isLoading_;
     AccountDetails* accountDetails_;
+    AccountStateDelegate *accountStateDelegate_;
 };
 
 #endif // CONFIGURATIONWIDGET_H
diff --git a/mainwindow.cpp b/mainwindow.cpp
index a852a18ee727f391b5a571cb9eea384d451c5297..0cd33f09b9f99d8690d13a1551805cf4625df6e0 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -51,6 +51,7 @@ MainWindow::MainWindow(QWidget *parent) :
 MainWindow::~MainWindow()
 {
     delete ui;
+    delete navStack_;
 }
 
 void
diff --git a/navstack.cpp b/navstack.cpp
index 333e422dbaa0607c1adffc0318e955399543ab7c..f058b4bc953c3e097257ed9207225be02d3718d6 100644
--- a/navstack.cpp
+++ b/navstack.cpp
@@ -42,7 +42,11 @@ NavStack::NavStack(QStackedWidget* bar, QStackedWidget* stack, QWidget *parent)
 }
 
 NavStack::~NavStack()
-{}
+{
+    for (int i = 0; i < END; i++) {
+        delete navList_[i];
+    }
+}
 
 void
 NavStack::onNavigationRequested(ScreenEnum screen) {
diff --git a/videoview.cpp b/videoview.cpp
index d61635e5873ccf0621a70b11ec276de623d4b0ed..c9075309920e60aa459a1b61205451a6e7ae2227 100644
--- a/videoview.cpp
+++ b/videoview.cpp
@@ -70,6 +70,9 @@ VideoView::VideoView(QWidget *parent) :
 VideoView::~VideoView()
 {
     delete ui;
+    delete overlay_;
+    delete timerLength_;
+    delete fadeAnim_;
 }
 
 void
diff --git a/wizarddialog.cpp b/wizarddialog.cpp
index b281d0cc175b85a8eccf473dbaf6159a6cb7c773..112c9a8bcd7c8047cb7ee29a5b1ba49579644084 100644
--- a/wizarddialog.cpp
+++ b/wizarddialog.cpp
@@ -48,6 +48,9 @@ WizardDialog::WizardDialog(QWidget *parent) :
 
 WizardDialog::~WizardDialog()
 {
+    if (ui->spinnerLabel->movie()) {
+        delete ui->spinnerLabel->movie();
+    }
     delete ui;
 }