diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp
index f66c3330fcdfffea3c0f2d15ed151dd3d1c728a2..bca53785fafc368c2916f2eda1f087551926241e 100644
--- a/src/plugins/texteditor/basetexteditor.cpp
+++ b/src/plugins/texteditor/basetexteditor.cpp
@@ -2135,7 +2135,7 @@ void BaseTextEditor::paintEvent(QPaintEvent *e)
         }
     }
 
-    if (d->m_animator) {
+    if (d->m_animator && d->m_animator->isRunning()) {
         QTextCursor cursor = textCursor();
         cursor.setPosition(d->m_animator->position());
         d->m_animator->draw(&painter, cursorRect(cursor).topLeft());
@@ -3420,6 +3420,11 @@ void BaseTextEditorAnimator::draw(QPainter *p, const QPointF &pos)
     p->drawText(r, m_text);
 }
 
+bool BaseTextEditorAnimator::isRunning() const
+{
+    return m_timeline->state() == QTimeLine::Running;
+}
+
 QRectF BaseTextEditorAnimator::rect() const
 {
     QFont f = m_font;
diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h
index ce9809dd6ef049f6a79bf938761e42c9e2d2527a..5ed1fc91b7a4d244980ba96f38b6c6c9641c4d3c 100644
--- a/src/plugins/texteditor/basetexteditor.h
+++ b/src/plugins/texteditor/basetexteditor.h
@@ -239,6 +239,8 @@ public:
 
     void finish();
 
+    bool isRunning() const;
+
 signals:
     void updateRequest(int position, QRectF rect);