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 9de19b4..e07f094 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
@@ -31,6 +31,10 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StyledText;
 import org.eclipse.swt.custom.StyledTextContent;
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.dnd.Transfer;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
@@ -432,4 +436,14 @@
 			shell.dispose();
 		}
 	}
+
+	@Test
+	public void testPasteMultiLines() {
+		Shell shell= new Shell();
+		TextViewer textViewer= new TextViewer(shell, SWT.NONE);
+		textViewer.setDocument(new Document());
+		new Clipboard(shell.getDisplay()).setContents(new Object[] { "a\na" }, new Transfer[] { TextTransfer.getInstance() }, DND.CLIPBOARD);
+		textViewer.doOperation(ITextOperationTarget.PASTE);
+		assertEquals("a\na", textViewer.getTextWidget().getText());
+	}
 }
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/SelectionProcessor.java b/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/SelectionProcessor.java
index 8dfadea..f2ab696 100644
--- a/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/SelectionProcessor.java
+++ b/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/SelectionProcessor.java
@@ -1033,7 +1033,7 @@
 	private <T extends ISelection> Implementation<T> getImplementation(ISelection selection) {
 		if (selection instanceof IBlockTextSelection) {
 			return (Implementation<T>) COLUMN_IMPLEMENTATION;
-		} else if (selection instanceof IMultiTextSelection) {
+		} else if (selection instanceof IMultiTextSelection && ((IMultiTextSelection)selection).getRegions().length > 1) {
 			return (Implementation<T>) RANGES_IMPLEMENTATION;
 		} else if (selection instanceof ITextSelection) {
 			return (Implementation<T>) RANGE_IMPLEMENTATION;
