diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index 18b1757eb32a825ff97bad96adb47b3a56f92d7b..e72076d3a73b775cbb1d5d5c501a0b37399aad58 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -85,6 +85,12 @@ class WatchItem : public WatchData
 public:
     WatchItem() { parent = 0; }
 
+    ~WatchItem() {
+        if (parent != 0)
+            parent->children.removeOne(this);
+        qDeleteAll(children);
+    }
+
     WatchItem(const WatchData &data) : WatchData(data)
         { parent = 0; }