Index: /CKEditor/trunk/_source/core/htmlparser/element.js
===================================================================
--- /CKEditor/trunk/_source/core/htmlparser/element.js	(revision 7544)
+++ /CKEditor/trunk/_source/core/htmlparser/element.js	(revision 7545)
@@ -26,5 +26,5 @@
 	 * @example
 	 */
-	this.attributes = attributes || ( attributes = {} );
+	this.attributes = attributes || {};
 
 	/**
@@ -35,21 +35,19 @@
 	this.children = [];
 
-	var tagName = attributes[ 'data-cke-real-element-type' ] || name || '';
-
-	// Reveal the real semantic of our internal custom tag name (#6639).
-	var internalTag = tagName.match( /^cke:(.*)/ );
-  	internalTag && ( tagName = internalTag[ 1 ] );
-
-	var dtd			= CKEDITOR.dtd,
-		isBlockLike	= !!( dtd.$nonBodyContent[ tagName ]
-				|| dtd.$block[ tagName ]
-				|| dtd.$listItem[ tagName ]
-				|| dtd.$tableContent[ tagName ]
-				|| dtd.$nonEditable[ tagName ]
-				|| tagName == 'br' ),
-		isEmpty = !!dtd.$empty[ tagName ];
-
-	this.isEmpty	= isEmpty;
-	this.isUnknown	= !dtd[ tagName ];
+	// Reveal the real semantic of our internal custom tag name (#6639),
+	// when resolving whether it's block like.
+	var realName = name || '',
+		prefixed = realName.match( /^cke:(.*)/ );
+  	prefixed && ( realName = prefixed[ 1 ] );
+
+	var isBlockLike	= !!( CKEDITOR.dtd.$nonBodyContent[ realName ]
+				|| CKEDITOR.dtd.$block[ realName ]
+				|| CKEDITOR.dtd.$listItem[ realName ]
+				|| CKEDITOR.dtd.$tableContent[ realName ]
+				|| CKEDITOR.dtd.$nonEditable[ realName ]
+				|| realName == 'br' );
+
+	this.isEmpty	= !!CKEDITOR.dtd.$empty[ name ];
+	this.isUnknown	= !CKEDITOR.dtd[ name ];
 
 	/** @private */
@@ -57,5 +55,5 @@
 	{
 		isBlockLike : isBlockLike,
-		hasInlineStarted : isEmpty || !isBlockLike
+		hasInlineStarted : this.isEmpty || !isBlockLike
 	};
 };
