diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index 652ae985587a7dc5ac3a35e17b5766369d41d01c..463d3028acb82137f1b2e1c14a6dae3ce0124bde 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -1319,11 +1319,14 @@ TypeFormatList WatchModel::typeFormatList(const WatchData &data) const
     }
 
     // Fixed artificial integral types.
-    data.value.toULongLong(&ok, 10);
+    QString v = data.value;
+    if (v.startsWith(QLatin1Char('-')))
+        v = v.mid(1);
+    v.toULongLong(&ok, 10);
     if (!ok)
-        data.value.toULongLong(&ok, 16);
+        v.toULongLong(&ok, 16);
     if (!ok)
-        data.value.toULongLong(&ok, 8);
+        v.toULongLong(&ok, 8);
     if (ok) {
         formats.append(DecimalIntegerFormat);
         formats.append(HexadecimalIntegerFormat);