Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 4817)
+++ /CKEditor/trunk/CHANGES.html	(revision 4818)
@@ -70,4 +70,5 @@
 		<li><a href="http://dev.fckeditor.net/ticket/4882">#4882</a> : Fixed auto detect paste from MS-Word is not working for Safari.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4882">#4882</a> : Fixed unexpected margin style left behind on content cleaning up from MS-Word.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4896">#4896</a> : Fixed paste nested list from MS-Word with measurement units set to cm is broken.</li>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/plugins/pastefromword/filter/default.js
===================================================================
--- /CKEditor/trunk/_source/plugins/pastefromword/filter/default.js	(revision 4817)
+++ /CKEditor/trunk/_source/plugins/pastefromword/filter/default.js	(revision 4818)
@@ -124,4 +124,6 @@
 	var emptyMarginRegex = /^(?:\b0[^\s]*\s*){1,4}$/;
 
+	var listBaseIndent;
+
 	CKEDITOR.plugins.pastefromword =
 	{
@@ -211,18 +213,22 @@
 					{
 						attrs.style = CKEDITOR.plugins.pastefromword.filters.stylesFilter(
-							[
-								// Text-indent is not representing list item level any more.
-								[ 'text-indent' ],
-								[ 'line-height' ],
-								// Resolve indent level from 'margin-left' value.
-								[ ( /^margin(:?-left)?$/ ), null, function( value )
-								{
-									// Be able to deal with component/short-hand form style.
-									var values = value.split( ' ' );
-									value = values[ 3 ] || values[ 1 ] || values [ 0 ];
-									attrs[ 'cke:indent' ] =
-										// Indent margin unit by 36pt.
-										Math.floor( parseInt( value, 10 ) / 36 );
-								} ]
+								[
+									// Text-indent is not representing list item level any more.
+									[ 'text-indent' ],
+									[ 'line-height' ],
+									// Resolve indent level from 'margin-left' value.
+									[ ( /^margin(:?-left)?$/ ), null, function( value )
+									{
+										// Be able to deal with component/short-hand form style.
+										var values = value.split( ' ' );
+										value = values[ 3 ] || values[ 1 ] || values [ 0 ];
+										value = parseInt( value, 10 );
+
+										// Figure out the indent unit by looking at the first list item.
+										!listBaseIndent && ( listBaseIndent = value );
+
+										// Indent level start with one.
+										attrs[ 'cke:indent' ] = Math.floor( value / listBaseIndent ) + 1;
+									} ]
 							] )( attrs.style, element ) || '' ;
 					}
@@ -236,4 +242,7 @@
 					return true;
 				}
+				// Indicate a list has ended.
+				else
+					listBaseIndent = 0;
 			},
 
@@ -1096,4 +1105,6 @@
 		data = data.replace( /<span>/g, '' );
 
+		// Clean up certain stateful session variables.
+		listBaseIndent = 0;
 		return data;
 	};
