diff --git a/src/plugins/valgrind/callgrindtextmark.cpp b/src/plugins/valgrind/callgrindtextmark.cpp
index aa524442d9e5c047765dc9451efcb14d9fc4d300..b6b3d6fd67e3af705b0ee3355abaf96328ae2d08 100644
--- a/src/plugins/valgrind/callgrindtextmark.cpp
+++ b/src/plugins/valgrind/callgrindtextmark.cpp
@@ -80,10 +80,10 @@ void CallgrindTextMark::paint(QPainter *painter, const QRect &paintRect) const
 
     // decrease font size if paint rect is too small (very unlikely, but may happen)
     QFont font = painter->font();
-    QFontMetrics fm = font;
+    QFontMetrics fm = QFontMetrics(font);
     while (fm.boundingRect(text).width() > paintRect.width()) {
         font.setPointSize(font.pointSize() - 1);
-        fm = font;
+        fm = QFontMetrics(font);
     }
     painter->setFont(font);