diff --git a/src/input.js b/src/input.js
index c1977c4..68c9db1 100644
--- a/src/input.js
+++ b/src/input.js
@@ -259,6 +259,7 @@ const safeKeycodes = [
34, // PageDown
35, // Home
36, // End
+ 229 // Composition start key
];
// Function keys.
diff --git a/tests/input.js b/tests/input.js
index 6b732a0..5666aee 100644
--- a/tests/input.js
+++ b/tests/input.js
@@ -429,6 +429,18 @@ describe( 'Input feature', () => {
expect( getModelData( model ) ).to.equal( 'fo[ob]ar' );
} );
+ // #82
+ it( 'should do nothing on composition start key', () => {
+ model.enqueueChanges( () => {
+ model.selection.setRanges( [
+ ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) ] );
+ } );
+
+ view.fire( 'keydown', { keyCode: 229 } );
+
+ expect( getModelData( model ) ).to.equal( 'fo[ob]ar' );
+ } );
+
it( 'should do nothing if selection is collapsed', () => {
view.fire( 'keydown', { ctrlKey: true, keyCode: getCode( 'c' ) } );
diff --git a/tests/manual/82/1.html b/tests/manual/82/1.html
new file mode 100644
index 0000000..c1f5bc8
--- /dev/null
+++ b/tests/manual/82/1.html
@@ -0,0 +1,3 @@
+
+
This is an editor instance.
+
diff --git a/tests/manual/82/1.js b/tests/manual/82/1.js
new file mode 100644
index 0000000..7a6315f
--- /dev/null
+++ b/tests/manual/82/1.js
@@ -0,0 +1,29 @@
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/* globals console, window, document */
+
+import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classic';
+import Enter from '@ckeditor/ckeditor5-enter/src/enter';
+import Typing from '../../../src/typing';
+import Heading from '@ckeditor/ckeditor5-heading/src/heading';
+import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
+import Undo from '@ckeditor/ckeditor5-undo/src/undo';
+import { getData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';
+
+window.setInterval( function() {
+ console.log( getData( window.editor.document ) );
+}, 3000 );
+
+ClassicEditor.create( document.querySelector( '#editor' ), {
+ plugins: [ Enter, Typing, Paragraph, Undo, Heading ],
+ toolbar: [ 'headings', 'undo', 'redo' ]
+} )
+.then( editor => {
+ window.editor = editor;
+} )
+.catch( err => {
+ console.error( err.stack );
+} );
diff --git a/tests/manual/82/1.md b/tests/manual/82/1.md
new file mode 100644
index 0000000..f762f50
--- /dev/null
+++ b/tests/manual/82/1.md
@@ -0,0 +1,10 @@
+## Input - non-collapsed IME
+
+_Check composition on non-collapsed selection_:
+
+* Hiragana,
+* Spanish-ISO: accent (it's under `'`) + "a",
+* MacOS: long "a" press (accent balloon).
+
+**Expected**: Composition should be started correctly, character starting the composition should be visible. The selected
+text should be replaced by composition start character.