diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp
index 907a3787445d04594913de8d841b5f517b5a6573..77e26de7f64c8dc479c4a7032444e7b5a4371237 100644
--- a/src/plugins/texteditor/texteditor.cpp
+++ b/src/plugins/texteditor/texteditor.cpp
@@ -4355,6 +4355,31 @@ void TextEditorWidget::extraAreaPaintEvent(QPaintEvent *e)
 
         painter.setPen(pal.color(QPalette::Dark));
 
+        if (d->m_lineNumbersVisible) {
+            const QString &number = lineNumber(blockNumber);
+            bool selected = (
+                    (selStart < block.position() + block.length()
+
+                    && selEnd > block.position())
+                    || (selStart == selEnd && selStart == block.position())
+                    );
+            if (selected) {
+                painter.save();
+                QFont f = painter.font();
+                const QTextCharFormat &currentLineNumberFormat
+                        = textDocument()->fontSettings().toTextCharFormat(C_CURRENT_LINE_NUMBER);
+                f.setBold(currentLineNumberFormat.font().bold());
+                f.setItalic(currentLineNumberFormat.font().italic());
+                painter.setFont(f);
+                painter.setPen(currentLineNumberFormat.foreground().color());
+                if (currentLineNumberFormat.background() != Qt::NoBrush)
+                    painter.fillRect(QRect(0, top, extraAreaWidth, height), currentLineNumberFormat.background().color());
+            }
+            painter.drawText(QRectF(markWidth, top, extraAreaWidth - markWidth - 4, height), Qt::AlignRight, number);
+            if (selected)
+                painter.restore();
+        }
+
         if (d->m_codeFoldingVisible || d->m_marksVisible) {
             painter.save();
             painter.setRenderHint(QPainter::Antialiasing, false);
@@ -4452,31 +4477,6 @@ void TextEditorWidget::extraAreaPaintEvent(QPaintEvent *e)
             painter.restore();
         }
 
-        if (d->m_lineNumbersVisible) {
-            const QString &number = lineNumber(blockNumber);
-            bool selected = (
-                    (selStart < block.position() + block.length()
-
-                    && selEnd > block.position())
-                    || (selStart == selEnd && selStart == block.position())
-                    );
-            if (selected) {
-                painter.save();
-                QFont f = painter.font();
-                const QTextCharFormat &currentLineNumberFormat
-                        = textDocument()->fontSettings().toTextCharFormat(C_CURRENT_LINE_NUMBER);
-                f.setBold(currentLineNumberFormat.font().bold());
-                f.setItalic(currentLineNumberFormat.font().italic());
-                painter.setFont(f);
-                painter.setPen(currentLineNumberFormat.foreground().color());
-                if (currentLineNumberFormat.background() != Qt::NoBrush)
-                  painter.fillRect(QRect(0, top, extraAreaWidth, height), currentLineNumberFormat.background().color());
-            }
-            painter.drawText(QRectF(markWidth, top, extraAreaWidth - markWidth - 4, height), Qt::AlignRight, number);
-            if (selected)
-                painter.restore();
-        }
-
         block = nextVisibleBlock;
         blockNumber = nextVisibleBlockNumber;
     }