Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 6556)
+++ /CKEditor/trunk/CHANGES.html	(revision 6557)
@@ -73,4 +73,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/7073">#7073</a> : Image dialog now does not allow zero height and width to be entered.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/7316">#7316</a> : [FF] Click on paste button incorrectly break the line at cursor.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6751">#6751</a> : Inline white spaces are incorrectly stripped when pasting from Word.</li>
 		<li>Updated the following language files:<ul>
 			<li><a href="http://dev.ckeditor.com/ticket/7124">#7124</a> : Czech;</li>
Index: /CKEditor/trunk/_source/core/htmlparser/element.js
===================================================================
--- /CKEditor/trunk/_source/core/htmlparser/element.js	(revision 6556)
+++ /CKEditor/trunk/_source/core/htmlparser/element.js	(revision 6557)
@@ -128,5 +128,5 @@
 					var writer = new CKEDITOR.htmlParser.basicWriter();
 					CKEDITOR.htmlParser.fragment.prototype.writeChildrenHtml.call( element, writer, filter );
-					element.children = new CKEDITOR.htmlParser.fragment.fromHtml( writer.getHtml() ).children;
+					element.children = new CKEDITOR.htmlParser.fragment.fromHtml( writer.getHtml(), 0, element.clone() ).children;
 					isChildrenFiltered = 1;
 				}
Index: /CKEditor/trunk/_source/core/htmlparser/fragment.js
===================================================================
--- /CKEditor/trunk/_source/core/htmlparser/fragment.js	(revision 6556)
+++ /CKEditor/trunk/_source/core/htmlparser/fragment.js	(revision 6557)
@@ -53,4 +53,5 @@
 	 * @param {String} fragmentHtml The HTML to be parsed, filling the fragment.
 	 * @param {Number} [fixForBody=false] Wrap body with specified element if needed.
+	 * @param {CKEDITOR.htmlParser.element} contextNode Parse the html as the content of this element.
 	 * @returns CKEDITOR.htmlParser.fragment The fragment created.
 	 * @example
@@ -59,9 +60,8 @@
 	 * alert( fragment.children[1].value );  " Text"
 	 */
-	CKEDITOR.htmlParser.fragment.fromHtml = function( fragmentHtml, fixForBody )
+	CKEDITOR.htmlParser.fragment.fromHtml = function( fragmentHtml, fixForBody, contextNode )
 	{
 		var parser = new CKEDITOR.htmlParser(),
-			html = [],
-			fragment = new CKEDITOR.htmlParser.fragment(),
+			fragment = contextNode || new CKEDITOR.htmlParser.fragment(),
 			pendingInline = [],
 			pendingBRs = [],
@@ -309,5 +309,5 @@
 				candidate = currentNode;
 
-			while ( candidate.type && candidate.name != tagName )
+			while ( candidate != fragment && candidate.name != tagName )
 			{
 				// If this is an inline element, add it to the pending list, if we're
@@ -325,5 +325,5 @@
 			}
 
-			if ( candidate.type )
+			if ( candidate != fragment )
 			{
 				// Add all elements that have been found in the above loop.
@@ -404,5 +404,5 @@
 
 		// Close all pending nodes.
-		while ( currentNode.type )
+		while ( currentNode != fragment )
 		{
 			var parent = currentNode.parent,
