diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index 1587af28e77947fb806a37b2b8bbf693ec76ad01..7c5b221a63024624d57bda6c5f4581db7e2500ec 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -780,8 +780,12 @@ bool operator<(const IName &iname1, const IName &iname2)
     QString name1 = iname1.section('.', -1);
     QString name2 = iname2.section('.', -1);
     if (!name1.isEmpty() && !name2.isEmpty()) {
-        if (name1.at(0).isDigit() && name2.at(0).isDigit())
-            return name1.toInt() < name2.toInt();
+        if (name1.at(0).isDigit() && name2.at(0).isDigit()) {
+            bool ok1 = false, ok2 = false;
+            int i1 = name1.toInt(&ok1), i2 = name2.toInt(&ok2);
+            if (ok1 && ok2)
+                return i1 < i2;
+        }
     }
     return name1 < name2; 
 }