Index: _source/plugins/selection/plugin.js
===================================================================
--- _source/plugins/selection/plugin.js	(revision 6559)
+++ _source/plugins/selection/plugin.js	(revision )
@@ -183,9 +183,55 @@
 				editor.on( 'getData', afterData );
 			}
 
+			// Editable HR element fixes for IE9 (#7193).
+			if ( CKEDITOR.env.ie && document.documentMode == 9 )
+			{
-			editor.on( 'contentDom', function()
+				editor.on( 'contentDom', function()
 				{
 					var doc = editor.document,
+						sel, range;
+
+					doc.on( 'selectionchange', function()
+					{
+						sel = doc.$.selection;
+						range = sel && sel.type == 'None' && sel.createRange();
+						var rangeParent =  range && new CKEDITOR.dom.element( range.parentElement() );
+
+						// Browser must be crazy by allowing editing hr, we fix it by selecting it as control.
+						if ( rangeParent && rangeParent.is( 'hr' ) )
+						{
+							range = new CKEDITOR.dom.range( doc );
+							range.selectNodeContents( rangeParent );
+							range.select();
+						}
+					}, null, null, 1 );
+
+					doc.on( 'keydown', function( evt )
+					{
+						var key = evt.data.getKeystroke();
+						sel = doc.$.selection;
+						var control = sel.type == 'Control' && new CKEDITOR.dom.element( sel.createRange().item( 0 ) );
+						if ( control && ( key == '37' || key == '39' ) && control.is( 'hr' ) )
+						{
+							range = new CKEDITOR.dom.range( doc );
+							var sibling = key == '37' ? control.getPrevious() : control.getNext();
+
+							// We're not able to fix the situation when sibling is text node - selection is sticky
+							// to the hr element in that case.
+							if ( sibling && sibling.type == CKEDITOR.NODE_ELEMENT )
+							{
+								range[ sibling.getName() in CKEDITOR.dtd.$empty ? 'selectNodeContents' : 'moveToElementEdit' + ( key == '37' ? 'End' : 'Start' ) ]( sibling );
+								range.select();
+								evt.data.preventDefault();
+							}
+						}
+					});
+				});
+			}
+
+			editor.on( 'contentDom', function()
+				{
+					var doc = editor.document,
 						body = doc.getBody(),
 						html = doc.getDocumentElement();
 
