diff --git a/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp b/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp
index ddaa3d4d951a0c5b8a9cde33c6a14b79e5fc8d6b..d9ac4a2ce9c6cd998135381e97744a26d36964e1 100644
--- a/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp
+++ b/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp
@@ -941,6 +941,8 @@ void Context2D::beginPainting()
         return;
 
     if (m_pixmap.width() != m_width || m_pixmap.height() != m_height) {
+        if (m_painter.isActive())
+            m_painter.end();
         m_pixmap = QPixmap(m_width, m_height);
         m_pixmap.fill(parent()->property("color").value<QColor>());
     }