diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index dfcd3ac2fe0e0ce04fba12a48874490e25c5e2a8..9e884448bf58cace91fffaa5ee3ddaf84e53187e 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -47,6 +47,7 @@
 #include <cplusplus/Overview.h>
 #include <cplusplus/OverviewModel.h>
 #include <cplusplus/SimpleLexer.h>
+#include <cplusplus/TokenUnderCursor.h>
 #include <cplusplus/TypeOfExpression.h>
 #include <cpptools/cppmodelmanagerinterface.h>
 
@@ -627,13 +628,15 @@ CPPEditor::Link CPPEditor::findLinkAt(const QTextCursor &cursor)
     tc.movePosition(QTextCursor::PreviousWord, QTextCursor::KeepAnchor);
     const int nameStart = tc.position();
     const int nameLength = tc.anchor() - tc.position();
+    tc.setPosition(endOfName);
 
-    // Drop out if we're at a number
-    if (characterAt(nameStart).isNumber())
+    // Drop out if we're at a number, string or comment
+    static TokenUnderCursor tokenUnderCursor;
+    const SimpleToken tk = tokenUnderCursor(tc);
+    if (tk.isLiteral() || tk.isComment())
         return link;
 
     // Evaluate the type of the expression under the cursor
-    tc.setPosition(endOfName);
     ExpressionUnderCursor expressionUnderCursor;
     const QString expression = expressionUnderCursor(tc);
     TypeOfExpression typeOfExpression;