Index: _source/plugins/selection/plugin.js
===================================================================
--- _source/plugins/selection/plugin.js	(revision 5562)
+++ _source/plugins/selection/plugin.js	(revision )
@@ -105,7 +105,8 @@
 			editor.on( 'contentDom', function()
 				{
 					var doc = editor.document,
-						body = doc.getBody();
+						body = doc.getBody(),
+						html = doc.getDocumentElement();
 
 					if ( CKEDITOR.env.ie )
 					{
@@ -115,7 +116,8 @@
 						// than firing the selection change event.
 
 						var savedRange,
-							saveEnabled;
+							saveEnabled,
+							restoreEnabled = 1;
 
 						// "onfocusin" is fired before "onfocus". It makes it
 						// possible to restore the selection before click
@@ -131,13 +133,16 @@
 								// point.
 								if ( savedRange )
 								{
+									if ( restoreEnabled )
+									{
-									// Well not break because of this.
-									try
-									{
-										savedRange.select();
-									}
-									catch (e)
-									{}
+										// Well not break because of this.
+										try
+										{
+											savedRange.select();
+										}
+										catch (e)
+										{}
+									}
 
 									savedRange = null;
 								}
@@ -160,6 +165,7 @@
 
 								// Disable selections from being saved.
 								saveEnabled = false;
+								restoreEnabled = 1;
 							});
 
 						// IE before version 8 will leave cursor blinking inside the document after
@@ -172,9 +178,28 @@
 							});
 						}
 
+						// Listening on document element ensures that
+						// scrollbar is included. (#5280)
+						html.on( 'mousedown', function ()
+						{
+							// Lock restore selection now, as we have
+							// a followed 'click' event which introduce
+							// new selection. (#5735)
+							restoreEnabled = 0;
+						});
+
+						html.on( 'mouseup', function ()
+						{
+							restoreEnabled = 1;
+						});
+
 						// IE fires the "selectionchange" event when clicking
 						// inside a selection. We don't want to capture that.
-						body.on( 'mousedown', disableSave );
+						body.on( 'mousedown', function ()
+						{
+							disableSave();
+						});
+
 						body.on( 'mouseup',
 							function()
 							{
