diff --git a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/TextViewerTest.java b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/TextViewerTest.java
index 53e9c55..0154c98 100644
--- a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/TextViewerTest.java
+++ b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/TextViewerTest.java
@@ -414,10 +414,17 @@
 	public void testPasteMultiLines() {
 		fShell= new Shell();
 		TextViewer textViewer= new TextViewer(fShell, SWT.NONE);
-		textViewer.setDocument(new Document());
+		Document document= new Document();
+		textViewer.setDocument(document);
 		new Clipboard(fShell.getDisplay()).setContents(new Object[] { "a\na" }, new Transfer[] { TextTransfer.getInstance() }, DND.CLIPBOARD);
 		textViewer.doOperation(ITextOperationTarget.PASTE);
 		assertEquals("a\na", textViewer.getTextWidget().getText());
+		//
+		document.set("a\na\na\nb");
+		textViewer.setSelectedRange(0, 6);
+		new Clipboard(fShell.getDisplay()).setContents(new Object[] { "b" }, new Transfer[] { TextTransfer.getInstance() }, DND.CLIPBOARD);
+		textViewer.doOperation(ITextOperationTarget.PASTE);
+		assertEquals("bb", textViewer.getTextWidget().getText());
 	}
 
 	@Test
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/TextViewer.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/TextViewer.java
index 7938bc5..d886741 100644
--- a/org.eclipse.jface.text/src/org/eclipse/jface/text/TextViewer.java
+++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/TextViewer.java
@@ -3981,7 +3981,7 @@
 	}
 
 	private void delete() {
-		if (!fTextWidget.getBlockSelection() && fTextWidget.getSelectionRanges().length < 2) {
+		if (!fTextWidget.getBlockSelection() && isWidgetSelectionSingleRange()) {
 			fTextWidget.invokeAction(ST.DELETE_NEXT);
 		} else {
 			wrapCompoundChange(() -> {
@@ -3997,9 +3997,13 @@
 		fireSelectionChanged(selection.x, selection.y);
 	}
 
+	private boolean isWidgetSelectionSingleRange() {
+		return fTextWidget.getSelectionRanges().length <= 2;
+	}
+
 	private void paste() {
 //		ignoreAutoEditStrategies(true);
-		if (fTextWidget.getSelectionRanges().length < 2) { // single selection
+		if (isWidgetSelectionSingleRange()) { // single selection
 			fTextWidget.paste();
 		} else {
 			wrapCompoundChange(() -> {
