Index: CKEditor/trunk/_source/plugins/clipboard/plugin.js
===================================================================
--- CKEditor/trunk/_source/plugins/clipboard/plugin.js	(revision 6370)
+++ CKEditor/trunk/_source/plugins/clipboard/plugin.js	(revision 6371)
@@ -400,5 +400,5 @@
 					body.on( 'beforecut', function() { !depressBeforeEvent && fixCut( editor ); } );
 
-					body.on( 'mouseup', setToolbarStates, editor );
+					body.on( 'mouseup', function(){ setTimeout( function(){ setToolbarStates.call( editor ); }, 0 ); }, editor );
 					body.on( 'keyup', setToolbarStates, editor );
 				});
@@ -408,4 +408,5 @@
 				{
 					inReadOnly = evt.data.selection.getRanges()[ 0 ].checkReadOnly();
+					setToolbarStates.call( editor );
 				});
 
Index: CKEditor/trunk/_source/plugins/selection/plugin.js
===================================================================
--- CKEditor/trunk/_source/plugins/selection/plugin.js	(revision 6370)
+++ CKEditor/trunk/_source/plugins/selection/plugin.js	(revision 6371)
@@ -80,18 +80,19 @@
 				case 'wysiwyg' :
 					editor.document.$.execCommand( 'SelectAll', false, null );
+					// Force triggering selectionChange (#7008)
+					editor.forceNextSelectionCheck();
+					editor.selectionChange();
 					break;
 				case 'source' :
 					// Select the contents of the textarea
-					var textarea = editor.textarea.$ ;
+					var textarea = editor.textarea.$;
 					if ( CKEDITOR.env.ie )
-					{
-						textarea.createTextRange().execCommand( 'SelectAll' ) ;
+						textarea.createTextRange().execCommand( 'SelectAll' );
+					else
+					{
+						textarea.selectionStart = 0;
+						textarea.selectionEnd = textarea.value.length;
 					}
-					else
-					{
-						textarea.selectionStart = 0 ;
-						textarea.selectionEnd = textarea.value.length ;
-					}
-					textarea.focus() ;
+					textarea.focus();
 			}
 		},
