Index: /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js	(revision 3655)
+++ /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js	(revision 3656)
@@ -120,6 +120,6 @@
 	
 	/**
-	 *  Auto-fixing block-less content by wrapping paragraph, prevent 
-	 *  non-exitable-block by padding extra br.
+	 *  Auto-fixing block-less content by wrapping paragraph (#3190), prevent
+	 *  non-exitable-block by padding extra br.(#3189)
 	 */
 	function onSelectionChangeFixBody( evt )
@@ -128,16 +128,17 @@
 			path = evt.data.path,
 			blockLimit = path.blockLimit,
+			selection = evt.data.selection,
+			range = selection.getRanges()[0],
 			body = editor.document.getBody(),
 			enterMode = editor.config.enterMode;
 
-		// When enterMode set to block, we'll establing new paragraph if the
-		// current range is block-less within body.
+		// When enterMode set to block, we'll establing new paragraph only if we're
+		// selecting inline contents right under body. (#3657)
 		if ( enterMode != CKEDITOR.ENTER_BR
+		     && range.collapsed
 			 && blockLimit.getName() == 'body'
 			 && !path.block )
 		{
-			var selection = evt.data.selection,
-				range = evt.data.selection.getRanges()[0],
-				bms = selection.createBookmarks(),
+			var bms = selection.createBookmarks(),
 				fixedBlock = range.fixBlock( true,
 					editor.config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p'  );
@@ -149,5 +150,5 @@
 				var brNodeList = fixedBlock.getElementsByTag( 'br' ), brNode;
 				for ( var i = 0 ; i < brNodeList.count() ; i++ )
-					if( ( brNode = brNodeList.getItem( i ) ) && brNode.hasAttribute( '_fck_bookmark' ) )
+					if( ( brNode = brNodeList.getItem( i ) ) && brNode.hasAttribute( '_cke_bogus' ) )
 						brNode.remove();
 			}
