diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/DebugSupport/DebugDialog.Designer.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/DebugSupport/DebugDialog.Designer.cs
index 624e6de..6113b5b 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/DebugSupport/DebugDialog.Designer.cs
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/DebugSupport/DebugDialog.Designer.cs
@@ -36,6 +36,7 @@
             System.Windows.Forms.ColumnHeader columnCount;
             System.Windows.Forms.ColumnHeader columnId;
             System.Windows.Forms.ColumnHeader columnEvents;
+            System.Windows.Forms.ColumnHeader columnSubject;
             this.tableMain = new System.Windows.Forms.TableLayoutPanel();
             this.flowButtons = new System.Windows.Forms.FlowLayoutPanel();
             this.buttonGC = new System.Windows.Forms.Button();
@@ -59,6 +60,9 @@
             this._layoutItemEvents = new System.Windows.Forms.TableLayoutPanel();
             this.listItemEventDetails = new System.Windows.Forms.ListView();
             this.listItemEvents = new System.Windows.Forms.ListView();
+            this._layoutEventsButtons = new System.Windows.Forms.FlowLayoutPanel();
+            this.buttonCleanGC = new System.Windows.Forms.Button();
+            this.columnProperties = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
             columnMethod = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
             columnFile = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
             columnLine = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
@@ -66,6 +70,7 @@
             columnCount = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
             columnId = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
             columnEvents = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+            columnSubject = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
             this.tableMain.SuspendLayout();
             this.flowButtons.SuspendLayout();
             this._tabs.SuspendLayout();
@@ -75,6 +80,7 @@
             this._layoutLocations.SuspendLayout();
             this._tabItemEvents.SuspendLayout();
             this._layoutItemEvents.SuspendLayout();
+            this._layoutEventsButtons.SuspendLayout();
             this.SuspendLayout();
             // 
             // columnMethod
@@ -101,6 +107,14 @@
             // 
             resources.ApplyResources(columnId, "columnId");
             // 
+            // columnEvents
+            // 
+            resources.ApplyResources(columnEvents, "columnEvents");
+            // 
+            // columnSubject
+            // 
+            resources.ApplyResources(columnSubject, "columnSubject");
+            // 
             // tableMain
             // 
             resources.ApplyResources(this.tableMain, "tableMain");
@@ -262,13 +276,15 @@
             resources.ApplyResources(this._layoutItemEvents, "_layoutItemEvents");
             this._layoutItemEvents.Controls.Add(this.listItemEventDetails, 0, 1);
             this._layoutItemEvents.Controls.Add(this.listItemEvents, 0, 0);
+            this._layoutItemEvents.Controls.Add(this._layoutEventsButtons, 0, 2);
             this._layoutItemEvents.Name = "_layoutItemEvents";
             // 
             // listItemEventDetails
             // 
             this.listItemEventDetails.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
             columnEvent,
-            columnCount});
+            columnCount,
+            this.columnProperties});
             resources.ApplyResources(this.listItemEventDetails, "listItemEventDetails");
             this.listItemEventDetails.FullRowSelect = true;
             this.listItemEventDetails.MultiSelect = false;
@@ -281,7 +297,8 @@
             // 
             this.listItemEvents.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
             columnId,
-            columnEvents});
+            columnEvents,
+            columnSubject});
             resources.ApplyResources(this.listItemEvents, "listItemEvents");
             this.listItemEvents.FullRowSelect = true;
             this.listItemEvents.HideSelection = false;
@@ -293,9 +310,22 @@
             this.listItemEvents.View = System.Windows.Forms.View.Details;
             this.listItemEvents.SelectedIndexChanged += new System.EventHandler(this.listItemEvents_SelectedIndexChanged);
             // 
-            // columnEvents
+            // _layoutEventsButtons
             // 
-            resources.ApplyResources(columnEvents, "columnEvents");
+            resources.ApplyResources(this._layoutEventsButtons, "_layoutEventsButtons");
+            this._layoutEventsButtons.Controls.Add(this.buttonCleanGC);
+            this._layoutEventsButtons.Name = "_layoutEventsButtons";
+            // 
+            // buttonCleanGC
+            // 
+            resources.ApplyResources(this.buttonCleanGC, "buttonCleanGC");
+            this.buttonCleanGC.Name = "buttonCleanGC";
+            this.buttonCleanGC.UseVisualStyleBackColor = true;
+            this.buttonCleanGC.Click += new System.EventHandler(this.buttonCleanGC_Click);
+            // 
+            // columnProperties
+            // 
+            resources.ApplyResources(this.columnProperties, "columnProperties");
             // 
             // DebugDialog
             // 
@@ -317,6 +347,9 @@
             this._layoutLocations.ResumeLayout(false);
             this._tabItemEvents.ResumeLayout(false);
             this._layoutItemEvents.ResumeLayout(false);
+            this._layoutItemEvents.PerformLayout();
+            this._layoutEventsButtons.ResumeLayout(false);
+            this._layoutEventsButtons.PerformLayout();
             this.ResumeLayout(false);
             this.PerformLayout();
 
@@ -347,5 +380,8 @@
         private System.Windows.Forms.TableLayoutPanel _layoutItemEvents;
         private System.Windows.Forms.ListView listItemEventDetails;
         private System.Windows.Forms.ListView listItemEvents;
+        private System.Windows.Forms.FlowLayoutPanel _layoutEventsButtons;
+        private System.Windows.Forms.Button buttonCleanGC;
+        private System.Windows.Forms.ColumnHeader columnProperties;
     }
 }
\ No newline at end of file
diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/DebugSupport/DebugDialog.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/DebugSupport/DebugDialog.cs
index a5e710f..f869b2a 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/DebugSupport/DebugDialog.cs
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/DebugSupport/DebugDialog.cs
@@ -158,6 +158,7 @@ namespace Acacia.Features.DebugSupport
                 ListViewItem item = new ListViewItem(events.Id);
                 item.Tag = events;
                 item.SubItems.Add(string.Join(", ", events.GetEvents()));
+                item.SubItems.Add(events.Subject);
                 listItemEvents.Items.Add(item);
             }
 
@@ -175,6 +176,10 @@ namespace Acacia.Features.DebugSupport
                 {
                     ListViewItem item = new ListViewItem(evt.ToString());
                     item.SubItems.Add(debug.GetEventCount(evt).ToString());
+
+                    if (evt == MailEvents.DebugEvent.PropertyChange)
+                        item.SubItems.Add(string.Join(", ", debug.Properties));
+
                     listItemEventDetails.Items.Add(item);
                 }
             }
@@ -182,6 +187,12 @@ namespace Acacia.Features.DebugSupport
                 header.Width = -2;
         }
 
+        private void buttonCleanGC_Click(object sender, EventArgs e)
+        {
+            MailEvents.MailEventsDebugClean();
+            RefreshItemEvents();
+        }
+
         #endregion
 
         #region Cycling
diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/DebugSupport/DebugDialog.resx b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/DebugSupport/DebugDialog.resx
index 940093e..191a93d 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/DebugSupport/DebugDialog.resx
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/DebugSupport/DebugDialog.resx
@@ -166,6 +166,18 @@
   
     44
   
+  
+    False
+  
+  
+    Events
+  
+  
+    False
+  
+  
+    Subject
+  
   
   
     Top, Bottom, Left, Right
@@ -576,14 +588,17 @@
   
     1
   
+  
+    Properties
+  
   
     Fill
   
   
-    3, 328
+    3, 305
   
   
-    597, 320
+    597, 296
   
   
     3
@@ -600,12 +615,6 @@
   
     0
   
-  
-    False
-  
-  
-    Events
-  
   
     Fill
   
@@ -613,7 +622,7 @@
     3, 3
   
   
-    597, 319
+    597, 296
   
   
     2
@@ -630,6 +639,66 @@
   
     1
   
+  
+    True
+  
+  
+    GrowAndShrink
+  
+  
+    True
+  
+  
+    465, 3
+  
+  
+    129, 35
+  
+  
+    0
+  
+  
+    Remove GC
+  
+  
+    buttonCleanGC
+  
+  
+    System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+  
+  
+    _layoutEventsButtons
+  
+  
+    0
+  
+  
+    Fill
+  
+  
+    RightToLeft
+  
+  
+    3, 607
+  
+  
+    597, 41
+  
+  
+    4
+  
+  
+    _layoutEventsButtons
+  
+  
+    System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+  
+  
+    _layoutItemEvents
+  
+  
+    2
+  
   
     Fill
   
@@ -637,7 +706,7 @@
     3, 3
   
   
-    2
+    3
   
   
     603, 651
@@ -658,7 +727,7 @@
     0
   
   
-    <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="listItemEventDetails" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="listItemEvents" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,20" /><Rows Styles="Percent,50,Percent,50" /></TableLayoutSettings>
+    <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="listItemEventDetails" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="listItemEvents" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="_layoutEventsButtons" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Percent,50,Percent,50,AutoSize,0" /></TableLayoutSettings>
   
   
     4, 33
@@ -798,6 +867,18 @@
   
     System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
   
+  
+    columnEvents
+  
+  
+    System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+  
+  
+    columnSubject
+  
+  
+    System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+  
   
     columnHeader1
   
@@ -822,10 +903,10 @@
   
     System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
   
-  
-    columnEvents
+  
+    columnProperties
   
-  
+  
     System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
   
   
diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Utils/MailEvents.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Utils/MailEvents.cs
index a68e50c..1933fd6 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Utils/MailEvents.cs
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Utils/MailEvents.cs
@@ -1,4 +1,4 @@
-/// Copyright 2016 Kopano b.v.
+/// Copyright 2017 Kopano b.v.
 /// 
 /// This program is free software: you can redistribute it and/or modify
 /// it under the terms of the GNU Affero General Public License, version 3,
@@ -380,8 +380,10 @@ namespace Acacia.Utils
         public interface MailEventDebug
         {
             string Id { get; }
+            string Subject { get; }
             int GetEventCount(DebugEvent which);
             IEnumerable GetEvents();
+            IEnumerable Properties { get; }
         }
 
         public static IEnumerable MailEventsDebug
@@ -389,6 +391,18 @@ namespace Acacia.Utils
             get { return _hookers?.Values; }
         }
 
+        public static void MailEventsDebugClean()
+        {
+            foreach (MailEventDebugImpl impl in _hookers.Values)
+            {
+                if (impl.GetEventCount(DebugEvent.GC) > 0)
+                {
+                    MailEventDebugImpl dummy;
+                    _hookers.TryRemove(impl._id, out dummy);
+                }
+            }
+        }
+
         private static readonly ConcurrentDictionary _hookers = 
             GlobalOptions.INSTANCE.WrapperTrace ? new ConcurrentDictionary() : null;
         private static int _nextHookerId;
@@ -423,14 +437,13 @@ namespace Acacia.Utils
                 if (_debug != null)
                 {
                     _debug.RecordEvent(DebugEvent.Dispose);
-                    MailEventDebugImpl dummy;
-                    _hookers.TryRemove(_debug._id, out dummy);
                 }
             }
 
             ~MailEventHooker()
             {
                 _debug?.RecordEvent(DebugEvent.GC);
+                _debug?.Finished();
             }
 
             private void HookEvents(bool add)
@@ -478,13 +491,17 @@ namespace Acacia.Utils
 
             private void HandlePropertyChange(string name)
             {
-                _debug?.RecordEvent(DebugEvent.PropertyChange);
+                _debug?.RecordEvent(DebugEvent.PropertyChange, name);
                 _events.OnPropertyChange(_item, name);
             }
 
             private void HandleRead()
             {
-                _debug?.RecordEvent(DebugEvent.Read);
+                if (_debug != null)
+                {
+                    _debug.RecordEvent(DebugEvent.Read);
+                    _debug.Subject = _item.Subject;
+                }
                 // TODO: should this not be simply an IItem?
                 _events.OnRead(_item as IMailItem);
             }
@@ -521,8 +538,14 @@ namespace Acacia.Utils
         private class MailEventDebugImpl : MailEventDebug
         { 
             private readonly ConcurrentDictionary _eventCounts = new ConcurrentDictionary();
+            private readonly List _properties = new List();
 
             public readonly int _id;
+            public DateTime? GCTime
+            {
+                get;
+                private set;
+            }
 
             public MailEventDebugImpl(int id)
             {
@@ -536,9 +559,11 @@ namespace Acacia.Utils
                 return count;
             }
 
-            public void RecordEvent(DebugEvent which)
+            public void RecordEvent(DebugEvent which, string property = null)
             {
                 _eventCounts.AddOrUpdate(which, 1, (i, value) => value + 1);
+                if (property != null)
+                    _properties.Add(property);
             }
 
             public IEnumerable GetEvents()
@@ -546,7 +571,18 @@ namespace Acacia.Utils
                 return _eventCounts.Keys;
             }
 
+            public IEnumerable Properties
+            {
+                get { return _properties; }
+            }
+
+            public void Finished()
+            {
+                GCTime = DateTime.Now;
+            }
+
             public string Id { get { return _id.ToString(); } }
+            public string Subject { get; set; }
         }
 
         #endregion