diff --git a/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp b/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp
index 6b3806213ee47d76cef71e6031e2a5a3c849e5ff..cb5a12f19143cfe07ab423ebda835291ea169990 100644
--- a/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp
+++ b/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp
@@ -66,6 +66,12 @@ DistributionWidget::DistributionWidget(QWidget *parent)
     connect(m_plot, SIGNAL(mouseMove(QMouseEvent *)), this, SLOT(onMouseMove(QMouseEvent *)));
 }
 
+DistributionWidget::~DistributionWidget()
+{
+    if(m_item)
+        m_item->mapper()->unsubscribe(this);
+}
+
 void DistributionWidget::setItem(DistributionItem *item)
 {
     if (m_item == item) {
@@ -88,6 +94,11 @@ void DistributionWidget::setItem(DistributionItem *item)
             plotItem();
         }, this);
 
+        m_item->mapper()->setOnItemDestroy(
+                    [this](SessionItem *) {
+            m_item = 0;
+        }, this);
+
     }
 
 }
diff --git a/GUI/coregui/Views/InfoWidgets/DistributionWidget.h b/GUI/coregui/Views/InfoWidgets/DistributionWidget.h
index e4551d370351741d0e56c6818a469d54cf62cc3f..c128c7e3b36f73aec9a028a6493f8191ae24b955 100644
--- a/GUI/coregui/Views/InfoWidgets/DistributionWidget.h
+++ b/GUI/coregui/Views/InfoWidgets/DistributionWidget.h
@@ -37,6 +37,7 @@ class DistributionWidget : public QWidget
 
 public:
     DistributionWidget(QWidget *parent = 0);
+    ~DistributionWidget();
 
     void setItem(DistributionItem *item);
     void plotItem();