Index: /CKEditor/branches/prototype/_source/plugins/editingblock/plugin.js
===================================================================
--- /CKEditor/branches/prototype/_source/plugins/editingblock/plugin.js	(revision 2815)
+++ /CKEditor/branches/prototype/_source/plugins/editingblock/plugin.js	(revision 2816)
@@ -35,4 +35,6 @@
 	// the following data handling functions.
 	var isHandlingData;
+
+	var blockElements = { address:1,blockquote:1,center:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,marquee:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 };
 
 	CKEDITOR.plugins.add( 'editingblock',
@@ -89,11 +91,22 @@
 						var selection = new CKEDITOR.dom.selection( editor.document ),
 							ranges = selection.getRanges(),
-							clone, lastRange, bookmark;
+							clone, lastRange, bookmark,
+							isBlock = blockElements[ evt.data.insert.getName() ];
+						
 						for ( var i = ranges.length - 1 ; i >= 0 ; i-- )
 						{
+							// Remove the original contents.
 							ranges[i].deleteContents();
+							
 							clone = evt.data.insert.clone( true );
+
+							// If the new node is a block element, split the current block.
+							if ( editor.config.enterMode != 'br' && isBlock )
+								ranges[i].splitBlock();
+
+							// Insert the new node.
 							ranges[i].insertNode( clone );
 
+							// Move the caret after the last insertion point.
 							if ( !lastRange )
 							{
