diff --git a/src/libs/cplusplus/Overview.cpp b/src/libs/cplusplus/Overview.cpp
index 8b4ad673b78bea029788d593b6d22602ff084bd1..dcb51db98136c983beb68766c85eb7cef3fe59c3 100644
--- a/src/libs/cplusplus/Overview.cpp
+++ b/src/libs/cplusplus/Overview.cpp
@@ -39,12 +39,23 @@ Overview::Overview()
       _showArgumentNames(false),
       _showReturnTypes(false),
       _showFunctionSignatures(true),
-      _showFullyQualifiedNames(false)
+      _showFullyQualifiedNames(false),
+      _richText(false)
 { }
 
 Overview::~Overview()
 { }
 
+bool Overview::richText() const
+{
+    return _richText;
+}
+
+void Overview::setRichText(bool richText)
+{
+    _richText = richText;
+}
+
 bool Overview::showArgumentNames() const
 {
     return _showArgumentNames;
diff --git a/src/libs/cplusplus/Overview.h b/src/libs/cplusplus/Overview.h
index 1af633353bfdb6f6237c2acea29ba6f981ab0991..8d2facac8edf7581be92d92687c2015d22f673af 100644
--- a/src/libs/cplusplus/Overview.h
+++ b/src/libs/cplusplus/Overview.h
@@ -44,6 +44,9 @@ public:
     Overview();
     ~Overview();
 
+    bool richText() const;
+    void setRichText(bool richText);
+
     bool showArgumentNames() const;
     void setShowArgumentNames(bool showArgumentNames);
 
@@ -77,6 +80,7 @@ private:
     bool _showReturnTypes: 1;
     bool _showFunctionSignatures: 1;
     bool _showFullyQualifiedNames: 1;
+    bool _richText: 1;
 };
 
 } // end of namespace CPlusPlus
diff --git a/src/libs/cplusplus/TypePrettyPrinter.cpp b/src/libs/cplusplus/TypePrettyPrinter.cpp
index 0334e8d44f021ab578f642f408f222480eb26856..f2594bacfe12af915810d9817dd4cb3c0f7d82a5 100644
--- a/src/libs/cplusplus/TypePrettyPrinter.cpp
+++ b/src/libs/cplusplus/TypePrettyPrinter.cpp
@@ -35,6 +35,7 @@
 #include <Scope.h>
 #include <QStringList>
 #include <QtDebug>
+#include <QTextDocument> // Qt::escape()
 
 using namespace CPlusPlus;
 
@@ -54,7 +55,7 @@ static QString fullyQualifiedName(Symbol *symbol, const Overview *overview)
         }
 
         if (! owner->name())
-            nestedNameSpecifier.prepend(QLatin1String("<anonymous>"));
+            nestedNameSpecifier.prepend(QLatin1String("$anonymous"));
 
         else {
             const QString name = overview->prettyName(owner->name());
@@ -325,7 +326,7 @@ void TypePrettyPrinter::visit(Function *type)
 
             if (Argument *arg = type->argumentAt(index)->asArgument()) {
                 if (index + 1 == _overview->markArgument())
-                    out(QLatin1String("<b>"));
+                    outPlain(QLatin1String("<b>"));
 
                 Name *name = 0;
 
@@ -335,7 +336,7 @@ void TypePrettyPrinter::visit(Function *type)
                 out(argumentText(arg->type(), name));
 
                 if (index + 1 == _overview->markArgument())
-                    out(QLatin1String("</b>"));
+                    outPlain(QLatin1String("</b>"));
             }
         }
 
@@ -367,9 +368,17 @@ void TypePrettyPrinter::space()
         _text += QLatin1Char(' ');
 }
 
-void TypePrettyPrinter::out(const QString &text)
+void TypePrettyPrinter::outPlain(const QString &text)
 { _text += text; }
 
+void TypePrettyPrinter::out(const QString &text)
+{
+    if (overview()->richText())
+        _text += Qt::escape(text);
+    else
+        _text += text;
+}
+
 void TypePrettyPrinter::out(const QChar &ch)
 { _text += ch; }
 
diff --git a/src/libs/cplusplus/TypePrettyPrinter.h b/src/libs/cplusplus/TypePrettyPrinter.h
index 432b400dd8d220c4461a630d2cf1b02e829dd680..42f020fa12440679ce74731ac9e4c3aa9df6f6b1 100644
--- a/src/libs/cplusplus/TypePrettyPrinter.h
+++ b/src/libs/cplusplus/TypePrettyPrinter.h
@@ -72,6 +72,7 @@ protected:
     virtual void visit(Enum *type);
 
     void space();
+    void outPlain(const QString &text);
     void out(const QString &text);
     void out(const QChar &ch);
     void outCV(const FullySpecifiedType &ty);
diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp
index 0d580ff0f9d87e005cda0cdbf87eeb7000dade4d..fd7278cd65c4d308a0c6453a467aeb4840150364 100644
--- a/src/plugins/cpptools/cppcodecompletion.cpp
+++ b/src/plugins/cpptools/cppcodecompletion.cpp
@@ -382,6 +382,7 @@ bool FunctionArgumentWidget::eventFilter(QObject *obj, QEvent *e)
 void FunctionArgumentWidget::updateHintText()
 {
     Overview overview;
+    overview.setRichText(true);
     overview.setShowReturnTypes(true);
     overview.setShowArgumentNames(true);
     overview.setMarkArgument(m_currentarg + 1);