diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp
index 2c1982041432d54db4432a57ddd5ac6666f00a77..dd0a1dff049cb22b540d3f4b610654a627a63bea 100644
--- a/src/plugins/debugger/watchutils.cpp
+++ b/src/plugins/debugger/watchutils.cpp
@@ -1708,10 +1708,10 @@ void parseWatchData(const QSet<QByteArray> &expandedINames,
     setWatchDataChildCount(childtemplate, item.findChild("childnumchild"));
     //qDebug() << "CHILD TEMPLATE:" << childtemplate.toString();
 
-    int i = 0;
-    foreach (const GdbMi &child, children.children()) {
+    for (int i = 0, n = children.children().size(); i != n; ++i) {
+        const GdbMi &child = children.children().at(i);
         WatchData data1 = childtemplate;
-        data1.sortId = i++;
+        data1.sortId = i;
         GdbMi name = child.findChild("name");
         if (name.isValid())
             data1.name = _(name.data());