diff --git a/src/gui/edit_label_methods/editlabelmethods.cpp b/src/gui/edit_label_methods/editlabelmethods.cpp
index e0f811857d617a05e7c34790142ca0098ab7edba..95774b07dad941e9b2dd6aa577183c4bccae449b 100644
--- a/src/gui/edit_label_methods/editlabelmethods.cpp
+++ b/src/gui/edit_label_methods/editlabelmethods.cpp
@@ -29,7 +29,7 @@
 #include <QMessageBox>
 
 EditLabelMethods::EditLabelMethods(ProjectWindow *parent):
-    QDialog(parent),
+    QDialog(),
     ui(new Ui::EditLabelMethodView)
 {
     ui->setupUi(this);
@@ -53,7 +53,10 @@ EditLabelMethods::EditLabelMethods(ProjectWindow *parent):
 #endif
 }
 EditLabelMethods::~EditLabelMethods() {
+    
+    qDebug() << "EditLabelMethods::~EditLabelMethods";
     delete ui;
+    qDebug() << "EditLabelMethods::~EditLabelMethods end";
 }
 void EditLabelMethods::setProjectSp(ProjectSp project_sp) {
 
diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
index 500e306bfad7280ac4f181e78235eda20b6c2169..1b8ab60b6996fe133f8e44ec589b292f3da68df0 100644
--- a/src/gui/mainwindow.cpp
+++ b/src/gui/mainwindow.cpp
@@ -100,14 +100,16 @@ MainWindow::MainWindow(QWidget *parent):
 
 MainWindow::~MainWindow()
 {
+    qDebug() << "MainWindow::~MainWindow";
     _worker_thread.quit();
     _worker_thread.wait();
     //if (_p_ms_data_file != nullptr) delete _p_ms_data_file;
     delete ui;
-    delete _project_window;
+    //delete _project_window;
     delete _p_load_results_dialog;
     delete _p_export_spreadsheet_dialog;
     delete _p_waiting_message_dialog;
+    qDebug() << "MainWindow::~MainWindow end";
 
 }
 
diff --git a/src/gui/project_view/automatic_filter_widget/automaticfilterwidget.cpp b/src/gui/project_view/automatic_filter_widget/automaticfilterwidget.cpp
index 716a5d1a8d3add2d345e9e75a86ead121c7996aa..187480f506fb2f403b4b7cc9aa286de666a25877 100644
--- a/src/gui/project_view/automatic_filter_widget/automaticfilterwidget.cpp
+++ b/src/gui/project_view/automatic_filter_widget/automaticfilterwidget.cpp
@@ -41,7 +41,9 @@ AutomaticFilterWidget::AutomaticFilterWidget(QWidget * parent):
 
 AutomaticFilterWidget::~AutomaticFilterWidget()
 {
+    qDebug() << "AutomaticFilterWidget::~AutomaticFilterWidget";
     delete ui;
+    qDebug() << "AutomaticFilterWidget::~AutomaticFilterWidget end";
 }
 
 
diff --git a/src/gui/project_view/identification_group_widget/identificationgroupwidget.cpp b/src/gui/project_view/identification_group_widget/identificationgroupwidget.cpp
index 601978b27e44030190f8debdf00f00860a9e319d..ab9113d22f52bb8c70013b2e6e0022e94f7383b4 100644
--- a/src/gui/project_view/identification_group_widget/identificationgroupwidget.cpp
+++ b/src/gui/project_view/identification_group_widget/identificationgroupwidget.cpp
@@ -51,7 +51,9 @@ IdentificationGroupWidget::IdentificationGroupWidget(ProjectWindow * parent, Ide
 
 IdentificationGroupWidget::~IdentificationGroupWidget()
 {
+    qDebug() << "IdentificationGroupWidget::~IdentificationGroupWidget";
     delete ui;
+    qDebug() << "IdentificationGroupWidget::~IdentificationGroupWidget end";
 }
 
 void IdentificationGroupWidget::doViewPtmIslandList() {
diff --git a/src/gui/project_view/projectwindow.cpp b/src/gui/project_view/projectwindow.cpp
index bd3d0f9922b16075ddd4033cb3898e861272cf5c..adfe6fd8495ee7e4008fd53020c41663b34a1410 100644
--- a/src/gui/project_view/projectwindow.cpp
+++ b/src/gui/project_view/projectwindow.cpp
@@ -91,10 +91,25 @@ ProjectWindow::ProjectWindow(MainWindow *parent):
 
 ProjectWindow::~ProjectWindow()
 {
+        qDebug() << "ProjectWindow::~ProjectWindow";
+
     //if (_p_ms_data_file != nullptr) delete _p_ms_data_file;
     _worker_thread.quit();
     _worker_thread.wait();
+    qDebug() << "ProjectWindow::~ProjectWindow1";
     delete ui;
+    qDebug() << "ProjectWindow::~ProjectWindow2";
+    //delete _p_fasta_str_li ;
+    qDebug() << "ProjectWindow::~ProjectWindow3";
+    //delete _p_automatic_filter_widget;
+    qDebug() << "ProjectWindow::~ProjectWindow4";
+    //delete _p_edit_modifications;
+    qDebug() << "ProjectWindow::~ProjectWindow5";
+    //delete _p_edit_label_methods ;
+    qDebug() << "ProjectWindow::~ProjectWindow6";
+    //delete _p_waiting_message_dialog;
+    qDebug() << "ProjectWindow::~ProjectWindow end";
+
 
 }
 
diff --git a/src/gui/protein_list_view/proteinlistwindow.cpp b/src/gui/protein_list_view/proteinlistwindow.cpp
index f5026242a2abd3badc25c781fa7949f7b3e9c446..263dc250dacd069a5fc2212ee88a39a18b90fb9e 100644
--- a/src/gui/protein_list_view/proteinlistwindow.cpp
+++ b/src/gui/protein_list_view/proteinlistwindow.cpp
@@ -166,28 +166,19 @@ void ProteinListWindow::doFocusReceived(bool has_focus) {
 
 
 void ProteinListWindow::showContextMenu(const QPoint & pos) {
-    QMenu contextMenu(tr("Context menu"), this);
+    if (_p_context_menu == nullptr) {
+    _p_context_menu = new QMenu(tr("Context menu"), this);
 
 
-    QAction accession_action("accession", this);
-    accession_action.setCheckable(true);
-    accession_action.setChecked(_display_evalue);
-    connect(&accession_action, SIGNAL(toggled(bool)), this, SLOT(showAccessionColumn(bool)));
-    contextMenu.addAction(&accession_action);
-
-    QAction evalue_action("Evalue", this);
-    evalue_action.setCheckable(true);
-    evalue_action.setChecked(_display_evalue);
-    connect(&evalue_action, SIGNAL(toggled(bool)), this, SLOT(showEvalueColumn(bool)));
-    contextMenu.addAction(&evalue_action);
-
     ProteinListQactionColumn * p_action;
     for (unsigned int i=0; i < _protein_table_model_p->columnCount(); i++) {
         p_action = new ProteinListQactionColumn(this,ProteinTableModel::getProteinListColumn(i));
-        contextMenu.addAction(p_action);
+        _p_context_menu->addAction(p_action);
     }
 
-    contextMenu.exec(mapToGlobal(pos));
+    _p_context_menu->exec(mapToGlobal(pos));
+    }
+    _p_context_menu->show();
 }
 
 
@@ -195,6 +186,9 @@ ProteinListWindow::~ProteinListWindow()
 {
     //if (_p_ms_data_file != nullptr) delete _p_ms_data_file;
     delete ui;
+    if (_p_context_menu != nullptr) {
+        delete _p_context_menu;
+    }
 
 }
 
diff --git a/src/gui/protein_list_view/proteinlistwindow.h b/src/gui/protein_list_view/proteinlistwindow.h
index 3ea05763a12774d4ac0ae41070e3a917b2ba8577..79dee349c83129aa1445d502de13f20f394cec12 100644
--- a/src/gui/protein_list_view/proteinlistwindow.h
+++ b/src/gui/protein_list_view/proteinlistwindow.h
@@ -27,6 +27,7 @@
 
 #include <QMainWindow>
 #include <QAction>
+#include <QMenu>
 #include "proteintablemodel.h"
 #include "proteintableproxymodel.h"
 
@@ -103,6 +104,7 @@ private:
     ProteinTableModel * _protein_table_model_p = nullptr;
     ProteinTableProxyModel * _p_proxy_model = nullptr;
     ProjectWindow * _project_window;
+    QMenu * _p_context_menu = nullptr;
     bool _display_evalue = true;
     bool _display_accession = true;