diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index 5d97f30045f5ecb16d65f1f4ee926ec79e25c8b6..5c13d8801715be461a20db45382553dc0a86798f 100644
--- a/src/plugins/debugger/debuggerengine.cpp
+++ b/src/plugins/debugger/debuggerengine.cpp
@@ -2023,7 +2023,9 @@ void DebuggerEngine::updateItem(const QByteArray &iname)
         WatchHandler *handler = watchHandler();
         WatchItem *item = handler->findItem(iname);
         QTC_CHECK(item);
-        if (item && !item->hasChildren()) {
+        WatchModelBase *model = handler->model();
+        QTC_CHECK(model);
+        if (item && !model->hasChildren(model->indexForItem(item))) {
             handler->notifyUpdateStarted({iname});
             item->setValue(decodeData({}, "notaccessible"));
             item->setHasChildren(false);