diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp
index a74e40cbe851622a37beaada1bb28171ddad3bf8..94f4f6e5c3b48c7bcce2ecb530bdabf8024a6a3d 100644
--- a/src/plugins/texteditor/basetexteditor.cpp
+++ b/src/plugins/texteditor/basetexteditor.cpp
@@ -3749,9 +3749,10 @@ void BaseTextEditor::handleBackspaceKey()
             cursor.setPosition(currentBlock.position(), QTextCursor::KeepAnchor);
             cursor.insertText(tabSettings.indentationString(previousNonEmptyBlockText));
             cursor.endEditBlock();
-            break;
+            return;
         }
     }
+    cursor.deletePreviousChar();
 }
 
 void BaseTextEditor::wheelEvent(QWheelEvent *e)
@@ -3918,6 +3919,8 @@ bool BaseTextEditor::autoBackspace(QTextCursor &cursor)
     d->m_allowSkippingOfBlockEnd = false;
 
     int pos = cursor.position();
+    if (pos == 0)
+        return false;
     QTextCursor c = cursor;
     c.setPosition(pos - 1);