diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index b1c1a818e61448479c69e54208f89d5a31149072..c8b257947228f4a25bbd74335f0cd41273a52ed9 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -166,7 +166,8 @@ void WatchData::setValue(const QString &value0)
     // "numchild" is sometimes lying
     //MODEL_DEBUG("\n\n\nPOINTER: " << type << value);
     if (isPointerType(type))
-        setHasChildren(value != "0x0" && value != "<null>");
+        setHasChildren(value != "0x0" && value != "<null>"
+            && !isCharPointerType(type));
 
     // pointer type information is available in the 'type'
     // column. No need to duplicate it here.
diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp
index 5b45d90aff6dc9d9aead6cdc3b6459ccc4067a1f..c5c9aac50069e4fb5c6beb2efd2db11aeaafe347 100644
--- a/src/plugins/debugger/watchutils.cpp
+++ b/src/plugins/debugger/watchutils.cpp
@@ -268,6 +268,13 @@ bool isPointerType(const QString &type)
     return type.endsWith(QLatin1Char('*')) || type.endsWith(QLatin1String("* const"));
 }
 
+bool isCharPointerType(const QString &type)
+{
+    return type == QLatin1String("char *")
+        || type == QLatin1String("const char *")
+        || type == QLatin1String("char const *");
+}
+
 bool isAccessSpecifier(const QString &str)
 {
     static const QStringList items = QStringList()
@@ -569,6 +576,8 @@ GuessChildrenResult guessChildren(const QString &type)
 {
     if (isIntOrFloatType(type))
         return HasNoChildren;
+    if (isCharPointerType(type))
+        return HasNoChildren;
     if (isPointerType(type))
         return HasChildren;
     if (type.endsWith(QLatin1String("QString")))
diff --git a/src/plugins/debugger/watchutils.h b/src/plugins/debugger/watchutils.h
index c7cf4bfdbed8ef7465fbc9c85abbcd3de9bc15fe..477eed2d33ab6c454e01213039e7ba2ed1448dbb 100644
--- a/src/plugins/debugger/watchutils.h
+++ b/src/plugins/debugger/watchutils.h
@@ -70,6 +70,7 @@ bool hasLetterOrNumber(const QString &exp);
 bool hasSideEffects(const QString &exp);
 bool isKeyWord(const QString &exp);
 bool isPointerType(const QString &type);
+bool isCharPointerType(const QString &type);
 bool isAccessSpecifier(const QString &str);
 bool startsWithDigit(const QString &str);
 QString stripPointerType(QString type);