Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 5380)
+++ /CKEditor/trunk/CHANGES.html	(revision 5381)
@@ -145,4 +145,5 @@
 		<li><a href="http://dev.fckeditor.net/ticket/3601">#3601</a> : [Safari] Bad performance when drag editor chrome resizer.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4476">#4476</a> : [IE] Inaccessible empty list item contains sub list.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4881">#4881</a> : [IE] Selection range broken because of cutting a single control type element from it.</li>
 		<li>Updated the following language files:<ul>
 			<li><a href="http://dev.fckeditor.net/ticket/5326">#5326</a> : Catalan;</li>
Index: /CKEditor/trunk/_source/plugins/clipboard/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/clipboard/plugin.js	(revision 5380)
+++ /CKEditor/trunk/_source/plugins/clipboard/plugin.js	(revision 5381)
@@ -69,4 +69,6 @@
 		exec : function( editor, data )
 		{
+			this.type == 'cut' && fixCut( editor );
+
 			var success = tryToCutCopy( editor, this.type );
 
@@ -249,4 +251,34 @@
 	}
 
+	// Cutting off control type element in IE standards breaks the selection entirely. (#4881)
+	function fixCut( editor )
+	{
+		if ( !CKEDITOR.env.ie || editor.document.$.compatMode == 'BackCompat' )
+			return;
+
+		var sel = editor.getSelection();
+		var control;
+		if( ( sel.getType() == CKEDITOR.SELECTION_ELEMENT ) && ( control = sel.getSelectedElement() ) )
+		{
+			var range = sel.getRanges()[ 0 ];
+			var dummy = editor.document.createText( '' );
+			dummy.insertBefore( control );
+			range.setStartBefore( dummy );
+			range.setEndAfter( control );
+			sel.selectRanges( [ range ] );
+
+			// Clear up the fix if the paste wasn't succeeded.
+			setTimeout( function()
+			{
+				// Element still online?
+				if ( control.getParent() )
+				{
+					dummy.remove();
+					sel.selectElement( control );
+				}
+			}, 0 );
+		}
+	}
+	
 	// Register the plugin.
 	CKEDITOR.plugins.add( 'clipboard',
@@ -319,5 +351,5 @@
 						function( evt )
 						{
-							if ( depressBeforePasteEvent )
+							if ( depressBeforeEvent )
 								return;
 
@@ -335,4 +367,5 @@
 						});
 
+					body.on( 'beforecut', function() { !depressBeforeEvent && fixCut( editor ); } );
 				});
 
@@ -340,14 +373,14 @@
 				if ( editor.contextMenu )
 				{
-					var depressBeforePasteEvent;
+					var depressBeforeEvent;
 					function stateFromNamedCommand( command )
 					{
-						// IE Bug: queryCommandEnabled('paste') fires also 'beforepaste',
+						// IE Bug: queryCommandEnabled('paste') fires also 'beforepaste(copy/cut)',
 						// guard to distinguish from the ordinary sources( either
 						// keyboard paste or execCommand ) (#4874).
-						CKEDITOR.env.ie && command == 'Paste'&& ( depressBeforePasteEvent = 1 );
+						CKEDITOR.env.ie && ( depressBeforeEvent = 1 );
 
 						var retval = editor.document.$.queryCommandEnabled( command ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED;
-						depressBeforePasteEvent = 0;
+						depressBeforeEvent = 0;
 						return retval;
 					}
