diff --git a/platform/lang-impl/src/com/intellij/codeInsight/editorActions/BackspaceHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/editorActions/BackspaceHandler.java index c88309abe221..b7b4d760442b 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/editorActions/BackspaceHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/editorActions/BackspaceHandler.java @@ -157,8 +157,6 @@ public class BackspaceHandler extends EditorWriteActionHandler { if (caretPos.line == 0 || caretPos.column == 0) { return null; } - final int startCheckRange = editor.getDocument().getLineStartOffset(caretPos.line); - final int endCheckRange = startCheckRange + caretPos.column; final CharSequence charSeq = editor.getDocument().getCharsSequence(); // smart backspace is activated only if all characters in the check range are whitespace characters @@ -166,9 +164,11 @@ public class BackspaceHandler extends EditorWriteActionHandler { // use logicalPositionToOffset to make sure tabs are handled correctly final LogicalPosition checkPos = new LogicalPosition(caretPos.line, pos); final int offset = editor.logicalPositionToOffset(checkPos); - final char c = charSeq.charAt(offset); - if (c != '\t' && c != ' ' && c != '\n') { - return null; + if (offset < charSeq.length()) { + final char c = charSeq.charAt(offset); + if (c != '\t' && c != ' ' && c != '\n') { + return null; + } } }