diff --git a/src/view/renderer.js b/src/view/renderer.js
index e2f7435a4..a6b270ea4 100644
--- a/src/view/renderer.js
+++ b/src/view/renderer.js
@@ -101,13 +101,6 @@ export default class Renderer {
*/
this.isFocused = false;
- /**
- * Indicates if the composition is in progress inside the view document view.
- *
- * @member {Boolean}
- */
- this.isComposing = false;
-
/**
* The text node in which the inline filler was rendered.
*
@@ -769,11 +762,6 @@ export default class Renderer {
* @returns {Boolean}
*/
_domSelectionNeedsUpdate( domSelection ) {
- // Remain DOM selection untouched while composing. See #1782.
- if ( this.isComposing ) {
- return false;
- }
-
if ( !this.domConverter.isDomSelectionCorrect( domSelection ) ) {
// Current DOM selection is in incorrect position. We need to update it.
return true;
diff --git a/src/view/view.js b/src/view/view.js
index 31735865d..86b59fa3a 100644
--- a/src/view/view.js
+++ b/src/view/view.js
@@ -105,7 +105,6 @@ export default class View {
*/
this._renderer = new Renderer( this.domConverter, this.document.selection );
this._renderer.bind( 'isFocused' ).to( this.document );
- this._renderer.bind( 'isComposing' ).to( this.document );
/**
* A DOM root attributes cache. It saves the initial values of DOM root attributes before the DOM element
diff --git a/tests/view/renderer.js b/tests/view/renderer.js
index 2c9f15078..cba6bd4c2 100644
--- a/tests/view/renderer.js
+++ b/tests/view/renderer.js
@@ -3706,48 +3706,6 @@ describe( 'Renderer', () => {
return viewData.repeat( repeat );
}
} );
-
- // #1782
- it( 'should leave dom selection untouched while composing', () => {
- const { view: viewP, selection: newSelection } = parse( '
[c]
. - renderer.isComposing = true; - const domText = document.createTextNode( 'c' ); - domRoot.firstChild.appendChild( domText ); - const range = document.createRange(); - range.setStart( domText, 0 ); - range.setEnd( domText, 1 ); - const domSelection = document.getSelection(); - domSelection.removeAllRanges(); - domSelection.addRange( range ); - - //