Index: /CKEditor/branches/features/pasting/_source/core/htmlparser/comment.js
===================================================================
--- /CKEditor/branches/features/pasting/_source/core/htmlparser/comment.js	(revision 4508)
+++ /CKEditor/branches/features/pasting/_source/core/htmlparser/comment.js	(revision 4509)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -50,4 +50,5 @@
 			if ( typeof comment != 'string' )
 			{
+				comment.parent = this.parent;
 				comment.writeHtml( writer, filter );
 				return;
Index: /CKEditor/branches/features/pasting/_source/core/htmlparser/element.js
===================================================================
--- /CKEditor/branches/features/pasting/_source/core/htmlparser/element.js	(revision 4508)
+++ /CKEditor/branches/features/pasting/_source/core/htmlparser/element.js	(revision 4509)
@@ -133,4 +133,6 @@
 					if ( !( element = filter.onElement( element ) ) )
 						return;
+
+					element.parent = this.parent;
 
 					if ( element.name == writeName )
Index: /CKEditor/branches/features/pasting/_source/plugins/pastefromword/plugin.js
===================================================================
--- /CKEditor/branches/features/pasting/_source/plugins/pastefromword/plugin.js	(revision 4508)
+++ /CKEditor/branches/features/pasting/_source/plugins/pastefromword/plugin.js	(revision 4509)
@@ -110,8 +110,8 @@
 	};
 
-	elementPrototype.getAncestor = function( tagName )
+	elementPrototype.getAncestor = function( tagNameRegex )
 	{
 		var parent = this.parent;
-		while( parent && parent.name != tagName )
+		while( parent && !( parent.name && parent.name.match( tagNameRegex ) ) )
 			parent = parent.parent;
 		return parent;
@@ -198,5 +198,5 @@
 		{
 			// Create a <cke:listbullet> which indicate an list item type.
-			createListBulletMarker : function ( bulletStyle )
+			createListBulletMarker : function ( bulletStyle, bulletText )
 			{
 				var marker = new CKEDITOR.htmlParser.element( 'cke:listbullet' ),
@@ -244,7 +244,7 @@
 				{
 					'cke:listtype' : listType,
-					'style' : 'list-style-type:' + bulletStyle + ';' 
+					'style' : 'list-style-type:' + bulletStyle + ';'
 				};
-
+				marker.add( new CKEDITOR.htmlParser.text( bulletText ) );
 				return marker;
 			},
@@ -788,6 +788,10 @@
 						// the text of a span with style 'mso-list : Ignore'.
 						if ( !CKEDITOR.env.gecko && isListBulletIndicator( element ) )
-							return createListBulletMarker( element.firstTextChild().value.match( /([^\s]+?)([.)]?)/ ) );
-						
+						{
+							var listSymbol = element.firstTextChild().value,
+								listType = listSymbol.match( /([^\s]+?)([.)]?)/ );
+							return createListBulletMarker( listType, listSymbol );
+						}
+
 						// Update the src attribute of image element with href.
 						var children = element.children,
@@ -832,4 +836,9 @@
 						var attrs = element.attributes;
 						if( attrs && !attrs.href && attrs.name )
+							delete element.name;
+					},
+					'cke:listbullet' : function( element )
+					{
+						if ( element.getAncestor( /h\d/ ) && !config.pasteFromWordNumberedHeadingToList )
 							delete element.name;
 					}
@@ -903,5 +912,5 @@
 				// comments where RegExp were the right approach to dig them out where usual approach
 				// is transform it into a fake element node which hold the desired data.
-				comment : !CKEDITOR.env.ie ? function( value )
+				comment : !CKEDITOR.env.ie ? function( value, node )
 				{
 					var imageInfo = value.match( /<img.*?>/ ),
@@ -920,5 +929,5 @@
 						var listSymbol = listInfo[ 1 ],
 							listType = listSymbol.match( />([^\s]+?)([.)]?)</ );
-						return createListBulletMarker( listType );
+						return createListBulletMarker( listType, listSymbol );
 					}
 					return false;
@@ -940,4 +949,13 @@
 
 /**
+ * Whether transform MS-Word Outline Numbered Heading into html list.
+ * @type Boolean
+ * @default false
+ * @example
+ * config.pasteFromWordNumberedHeadingToList = true;
+ */
+CKEDITOR.config.pasteFromWordNumberedHeadingToList = false;
+
+/**
  * Whether prompt the user about the clean-up of content from MS-Word.
  * @type Boolean
