Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 6316)
+++ /CKEditor/trunk/CHANGES.html	(revision 6317)
@@ -90,4 +90,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/5500">#5500</a> : [IE] 'value' attribute of text input dialog field was missing.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6665">#6665</a> : [IE] "name" field of link dialog was missing.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6639">#6639</a> :  Line-breaks inside pasted list item from MS-Word breaks list structure.</li>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/core/htmlparser/element.js
===================================================================
--- /CKEditor/trunk/_source/core/htmlparser/element.js	(revision 6316)
+++ /CKEditor/trunk/_source/core/htmlparser/element.js	(revision 6317)
@@ -1,3 +1,3 @@
-﻿/*
+﻿﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -37,7 +37,16 @@
 	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[ name ];
+		isBlockLike	= !!( dtd.$nonBodyContent[ tagName ]
+				|| dtd.$block[ tagName ]
+				|| dtd.$listItem[ tagName ]
+				|| dtd.$tableContent[ tagName ]
+				|| dtd.$nonEditable[ tagName ]
+				|| tagName == 'br' ),
+		isEmpty = !!dtd.$empty[ name ];
 
 	this.isEmpty	= isEmpty;
