diff --git a/modules/gui/src/main_area.cc b/modules/gui/src/main_area.cc
index 230c7d7763bce559f9af741f9b52a9ae48555dc8..3c931ca8e74859b43eae25db173d3d2785b6fad2 100644
--- a/modules/gui/src/main_area.cc
+++ b/modules/gui/src/main_area.cc
@@ -115,10 +115,12 @@ void MainArea::EnableTabbedMode(bool tm)
 void MainArea::AddWidget(const QString& title, QWidget* widget)
 {
   QMdiSubWindow* mdi=new QMdiSubWindow(this);
+  mdi->setAttribute(Qt::WA_DeleteOnClose);
   mdi->setWindowTitle(title);
   mdi->setWidget(widget);
   widget->setParent(mdi);
   this->addSubWindow(mdi);
+  connect(widget, SIGNAL(destroyed()), mdi, SLOT(close()));
   mdi->show();
 }