Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 6073)
+++ /CKEditor/trunk/CHANGES.html	(revision 6074)
@@ -50,4 +50,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/6644">#6644</a> : Restrict onmousedown handler to the toolbar area.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6656">#6656</a> : Panelbutton's buttons became active when clicking on source.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5404">#5404</a> : Whitespaces (NBSP) were incorrectly added into empty table cells and list items.</li>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/plugins/htmldataprocessor/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/htmldataprocessor/plugin.js	(revision 6073)
+++ /CKEditor/trunk/_source/plugins/htmldataprocessor/plugin.js	(revision 6074)
@@ -39,6 +39,15 @@
 	}
 
-	function blockNeedsExtension( block )
-	{
+	function blockNeedsExtension( block, fromSource )
+	{
+        // 1. For IE version >=8,  empty blocks are displayed correctly themself in wysiwiyg;
+        // 2. For the rest, at least table cell and list item need no filler space.
+        // (#6248)
+        if ( fromSource && CKEDITOR.env.ie && 
+                ( document.documentMode > 7
+                || block.name in CKEDITOR.dtd.tr
+                || block.name in CKEDITOR.dtd.$listItem ) )
+            return false;
+
 		var lastChild = lastNoneSpaceChild( block );
 
@@ -54,5 +63,5 @@
 		trimFillers( block, true );
 
-		if ( blockNeedsExtension( block ) )
+		if ( blockNeedsExtension( block, true ) )
 		{
 			if ( CKEDITOR.env.ie )
