Index: /CKEditor/trunk/_source/plugins/selection/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/selection/plugin.js	(revision 6271)
+++ /CKEditor/trunk/_source/plugins/selection/plugin.js	(revision 6272)
@@ -1127,5 +1127,11 @@
 						{
 							between.shrink( CKEDITOR.NODE_ELEMENT, true );
-							if ( between.getCommonAncestor().isReadOnly())
+							var ancestor = between.getCommonAncestor(),
+								enclosed = between.getEnclosedNode();
+
+							// The following cases has to be considered:
+							// 1. <span contenteditable="false">[placeholder]</span>
+							// 2. <input contenteditable="false"  type="radio"/> (#6621)
+							if ( ancestor.isReadOnly() || enclosed && enclosed.isReadOnly() )
 							{
 								right.setStart( left.startContainer, left.startOffset );
Index: /CKEditor/trunk/_source/plugins/styles/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/styles/plugin.js	(revision 6271)
+++ /CKEditor/trunk/_source/plugins/styles/plugin.js	(revision 6272)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -1423,7 +1423,5 @@
 	{
 		var selection = document.getSelection(),
-			// Bookmark the range so we can re-select it after processing.
-			bookmarks = selection.createBookmarks( 1 ),
-			ranges = selection.getRanges(),
+			ranges = selection.getRanges( true ),
 			func = remove ? this.removeFromRange : this.applyToRange,
 			range;
@@ -1431,13 +1429,9 @@
 		var iterator = ranges.createIterator();
 		while ( ( range = iterator.getNextRange() ) )
+		{
 			func.call( this, range );
-
-		if ( bookmarks.length == 1 && bookmarks[0].collapsed )
-		{
-			selection.selectRanges( ranges );
-			document.getById( bookmarks[ 0 ].startNode ).remove();
-		}
-		else
-			selection.selectBookmarks( bookmarks );
+		}
+
+		selection.selectRanges( ranges );
 	}
 })();
