Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 6584)
+++ /CKEditor/trunk/CHANGES.html	(revision 6585)
@@ -68,5 +68,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/6966">#6966</a> : [IE] Unintended paragraph is created on empty document in enter mode BR and DIV.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/7084">#7084</a> : SCAYT dialog window is now working properly with more than one editor instance in a page.</li>
-		<li><a href="http://dev.ckeditor.com/ticket/6662">#6662</a> : [FF] List structure pasting now works with FF4 (RC), which is caused by a regression from FF3.x.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6662">#6662</a> : [FF] List structure pasting now works again, which is caused by a regression from FF3.5.x</li>
 		<li><a href="http://dev.ckeditor.com/ticket/7300">#7300</a> : Link dialog now loads numeric values correctly.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/7330">#7330</a> : New list items now do not inherit the <code>value</code> attribute from their sibiling.</li>
Index: /CKEditor/trunk/_source/plugins/pastefromword/filter/default.js
===================================================================
--- /CKEditor/trunk/_source/plugins/pastefromword/filter/default.js	(revision 6584)
+++ /CKEditor/trunk/_source/plugins/pastefromword/filter/default.js	(revision 6585)
@@ -229,5 +229,5 @@
 
 										// Figure out the indent unit by looking at the first increament.
-										if ( !listBaseIndent && previousListItemMargin && margin > previousListItemMargin )
+										if ( !listBaseIndent && previousListItemMargin != undefined && margin > previousListItemMargin )
 											listBaseIndent = margin - previousListItemMargin;
 
@@ -236,4 +236,7 @@
 							] )( attrs.style, element ) || '' ;
 					}
+
+					// First level list item are always presented without a margin.
+					!attrs[ 'cke:margin' ] && ( attrs[ 'cke:margin' ] = previousListItemMargin = 0 );
 
 					// Inherit list-type-style from bullet.
@@ -393,5 +396,5 @@
 							// no indentation at all.
 							listItemIndent = parseInt( listItemAttrs[ 'cke:indent' ], 10 )
-													|| listBaseIndent && ( Math.ceil( listItemAttrs[ 'cke:margin' ] / listBaseIndent ) )
+													|| listBaseIndent && ( Math.ceil( listItemAttrs[ 'cke:margin' ] / listBaseIndent ) + 1 )
 													|| 1;
 
@@ -756,4 +759,15 @@
 					'p' : function( element )
 					{
+						// This's a fall-back approach to recognize list item in FF3.6,
+						// as it's not perfect as not all list style (e.g. "heading list") is shipped
+						// with this pattern. (#6662)
+						if ( /MsoListParagraph/.exec( element.attributes[ 'class' ] ) )
+						{
+							var bulletText = element.firstChild( function( node ) { return node.type == CKEDITOR.NODE_TEXT; } );
+							var bullet = bulletText && bulletText.parent,
+								bulletAttrs = bullet && bullet.attributes;
+							bulletAttrs && !bulletAttrs.style && ( bulletAttrs.style = 'mso-list: Ignore;' );
+						}
+
 						element.filterChildren();
 
