diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp
index 5de9b1c38c5cf19a72dfbf32e9949491eb4c973f..440acd8456d3e74d056266a12f11dfcb8a2642a8 100644
--- a/src/plugins/texteditor/basetexteditor.cpp
+++ b/src/plugins/texteditor/basetexteditor.cpp
@@ -1918,23 +1918,6 @@ void BaseTextEditorPrivate::moveCursorVisible(bool ensureVisible)
         q->ensureCursorVisible();
 }
 
-static QColor calcBlendColor(const QColor &baseColor, int factor = 1)
-{
-    const int blendBase = (baseColor.value() > 128) ? 0 : 255;
-    // Darker backgrounds may need a bit more contrast
-    const int blendFactor = (baseColor.value() > 128) ? 16 : 32;
-    QColor blendColor = baseColor;
-
-    while (factor--) {
-        blendColor = QColor(
-                (blendBase * blendFactor + blendColor.red() * (256 - blendFactor)) / 256,
-                (blendBase * blendFactor + blendColor.green() * (256 - blendFactor)) / 256,
-                (blendBase * blendFactor + blendColor.blue() * (256 - blendFactor)) / 256);
-    }
-    return blendColor;
-}
-
-
 static QColor calcBlendColor(const QColor &baseColor, int level, int count)
 {
     QColor color80;
@@ -1997,13 +1980,13 @@ void BaseTextEditor::paintEvent(QPaintEvent *e)
     QRect viewportRect = viewport()->rect();
 
     const QColor baseColor = palette().base().color();
-    const QColor blendColor = calcBlendColor(baseColor);
 
     qreal lineX = 0;
 
     if (d->m_visibleWrapColumn > 0) {
         lineX = fontMetrics().averageCharWidth() * d->m_visibleWrapColumn + offset.x() + 4;
-        painter.fillRect(QRectF(lineX, 0, viewportRect.width() - lineX, viewportRect.height()), blendColor);
+        painter.fillRect(QRectF(lineX, 0, viewportRect.width() - lineX, viewportRect.height()),
+                         d->m_ifdefedOutFormat.background());
     }
 
 //    // keep right margin clean from full-width selection
@@ -2051,6 +2034,15 @@ void BaseTextEditor::paintEvent(QPaintEvent *e)
 
         QRectF r = blockBoundingRect(block).translated(offset);
 
+        if (TextEditDocumentLayout::ifdefedOut(block)) {
+            QRectF rr = r;
+            rr.setWidth(viewport()->width());
+            if (lineX > 0)
+                rr.setRight(qMin(lineX, rr.right()));
+            painter.fillRect(rr, d->m_ifdefedOutFormat.background());
+        }
+
+
         if (!d->m_highlightBlocksInfo.isEmpty()) {
 
             int n = block.blockNumber();
@@ -2077,15 +2069,17 @@ void BaseTextEditor::paintEvent(QPaintEvent *e)
 
         QTextLayout *layout = block.layout();
 
+#if 0
         QTextOption option = layout->textOption();
         if (TextEditDocumentLayout::ifdefedOut(block)) {
-            option.setFlags(option.flags() | QTextOption::SuppressColors);
+            option.setFlags(option.flags() /*| QTextOption::SuppressColors*/);
             painter.setPen(d->m_ifdefedOutFormat.foreground().color());
         } else {
             option.setFlags(option.flags() & ~QTextOption::SuppressColors);
             painter.setPen(context.palette.text().color());
         }
         layout->setTextOption(option);
+#endif
 
         if (r.bottom() >= er.top() && r.top() <= er.bottom()) {
 
@@ -2342,9 +2336,7 @@ void BaseTextEditor::paintEvent(QPaintEvent *e)
         painter.save();
         painter.setRenderHint(QPainter::Antialiasing, true);
         painter.translate(.5, .5);
-        QColor color = blendColor;
-//        color.setAlpha(240); // someone thinks alpha blending looks messy
-        painter.setBrush(color);
+        painter.setBrush(d->m_ifdefedOutFormat.background());
         painter.drawRoundedRect(QRectF(visibleCollapsedBlockOffset.x(),
                                        visibleCollapsedBlockOffset.y(),
                                        maxWidth, blockHeight).adjusted(0, 0, 0, 0), 3, 3);
@@ -4159,8 +4151,7 @@ void BaseTextEditor::setIfdefedOutBlocks(const QList<BaseTextEditor::BlockRange>
         bool set = false;
         if (rangeNumber < blocks.size()) {
             const BlockRange &range = blocks.at(rangeNumber);
-
-            if (block.position() >= range.first && (block.position() <= range.last || !range.last)) {
+            if (block.position() >= range.first && ((block.position() + block.length() - 1) <= range.last || !range.last)) {
                 set = TextEditDocumentLayout::setIfdefedOut(block);
             } else {
                 cleared = TextEditDocumentLayout::clearIfdefedOut(block);
diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp
index 54224bb49882ba80866401dfe2c1206757f76c38..898f775cc460dd7944882728447f741673f63592 100644
--- a/src/plugins/texteditor/fontsettingspage.cpp
+++ b/src/plugins/texteditor/fontsettingspage.cpp
@@ -298,6 +298,8 @@ QColor FormatDescription::background() const
         return QColor(220, 220, 220);
     } else if (m_name == QLatin1String(Constants::C_OCCURRENCES_RENAME)) {
         return QColor(255, 200, 200);
+    } else if (m_name == QLatin1String(Constants::C_DISABLED_CODE)) {
+        return QColor(239, 239, 239);
     }
     return QColor(); // invalid color
 }
diff --git a/src/plugins/texteditor/texteditorsettings.cpp b/src/plugins/texteditor/texteditorsettings.cpp
index 4b590093dd40074473429851b1537e35adf1cc79..1e6f2c65aded6687fe159b611a6d7ba882f2d386 100644
--- a/src/plugins/texteditor/texteditorsettings.cpp
+++ b/src/plugins/texteditor/texteditorsettings.cpp
@@ -93,7 +93,7 @@ TextEditorSettings::TextEditorSettings(QObject *parent)
     formatDescriptions.append(FormatDescription(QLatin1String(C_DOXYGEN_COMMENT), tr("Doxygen Comment"), Qt::darkBlue));
     formatDescriptions.append(FormatDescription(QLatin1String(C_DOXYGEN_TAG), tr("Doxygen Tag"), Qt::blue));
     formatDescriptions.append(FormatDescription(QLatin1String(C_VISUAL_WHITESPACE), tr("Visual Whitespace"), Qt::lightGray));
-    formatDescriptions.append(FormatDescription(QLatin1String(C_DISABLED_CODE), tr("Disabled Code"), Qt::gray));
+    formatDescriptions.append(FormatDescription(QLatin1String(C_DISABLED_CODE), tr("Disabled Code")));
 
     // Diff categories
     formatDescriptions.append(FormatDescription(QLatin1String(C_ADDED_LINE), tr("Added Line"), QColor(0, 170, 0)));