Index: /CKEditor/trunk/_source/core/dtd.js
===================================================================
--- /CKEditor/trunk/_source/core/dtd.js	(revision 7008)
+++ /CKEditor/trunk/_source/core/dtd.js	(revision 7009)
@@ -121,4 +121,9 @@
 		 */
 		$nonEditable : {applet:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,script:1,textarea:1,param:1,audio:1,video:1},
+
+		/**
+		 *  List of block tags with each one a singleton element lives in the corresponding structure for description.
+		 */
+		$captionBlock : { caption:1, legend:1 },
 
 		/**
Index: /CKEditor/trunk/_source/plugins/enterkey/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/enterkey/plugin.js	(revision 7008)
+++ /CKEditor/trunk/_source/plugins/enterkey/plugin.js	(revision 7009)
@@ -67,6 +67,6 @@
 				}
 			}
-			// Don't split caption block, like <caption> and <legend>. (#7944)
-			else if ( block && !CKEDITOR.dtd[ block.getName() ][ 'p' ] )
+			// Don't split caption blocks. (#7944)
+			else if ( block && CKEDITOR.dtd.$captionBlock[ block.getName() ] )
 			{
 				enterBr( editor, mode, range, forceMode );
