diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp
index b6305a359ee208070839106737464026820a6afb..30e5690b7e7f08f9587d811b765a0e4bb36f54df 100644
--- a/src/plugins/cpptools/cppfindreferences.cpp
+++ b/src/plugins/cpptools/cppfindreferences.cpp
@@ -560,7 +560,7 @@ public:
                 unsigned lineStart;
                 const QString &lineSource = matchingLine(use.begin(), source, &lineStart);
                 usages.append(Usage(fileName, lineSource, use.beginLine(),
-                                    use.begin() - lineStart, use.length()));
+                                    use.begin() - lineStart, useMacro.name().length()));
             }
         }
 
@@ -644,8 +644,9 @@ void CppFindReferences::findMacroUses(const Macro &macro)
     {
         // ### FIXME: Encoding?
         const QByteArray &source = getSource(macro.fileName(), workingCopy).toLatin1();
-        search->addResult(macro.fileName(), macro.line(),
-                          source.mid(macro.offset(), macro.length()), 0, macro.length());
+        const QByteArray line = source.mid(macro.offset(), macro.length());
+        search->addResult(macro.fileName(), macro.line(), line,
+                          line.indexOf(macro.name()), macro.name().length());
     }
 
     QFuture<Usage> result;