Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 4810)
+++ /CKEditor/trunk/CHANGES.html	(revision 4811)
@@ -69,4 +69,5 @@
 		<li><a href="http://dev.fckeditor.net/ticket/4855">#4855</a> : Fixed toolbar doesn't wrap well for 'v2' skin in all browsers.</li>
 		<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>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/plugins/pastefromword/filter/default.js
===================================================================
--- /CKEditor/trunk/_source/plugins/pastefromword/filter/default.js	(revision 4810)
+++ /CKEditor/trunk/_source/plugins/pastefromword/filter/default.js	(revision 4811)
@@ -259,4 +259,24 @@
 			} )(),
 
+			// Providing a shorthand style then retrieve one or more style component values. 
+			getStyleComponents : ( function()
+			{
+				var calculator = CKEDITOR.dom.element.createFromHtml(
+								'<div style="position:absolute;left:-9999px;top:-9999px;"></div>',
+								CKEDITOR.document );
+				CKEDITOR.document.getBody().append( calculator );
+
+				return function( name, styleValue, fetchList )
+				{
+					calculator.setStyle( name, styleValue );
+					var styles = {},
+						count = fetchList.length;
+					for ( var i = 0; i < count; i++ )
+						styles[ fetchList[ i ] ]  = calculator.getStyle( fetchList[ i ] );
+
+					return styles;
+				};
+			} )(),
+
 			listDtdParents : CKEDITOR.dtd.parentOf( 'ol' )
 		},
@@ -454,5 +474,11 @@
 
 												if( typeof newValue == 'function' )
-													newValue = newValue( value, element );
+													newValue = newValue( value, element, name );
+
+												// Return an couple indicate both name and value
+												// changed.
+												if( newValue && newValue.push )
+													name = newValue[ 0 ], newValue = newValue[ 1 ];
+
 												if( typeof newValue == 'string' )
 													rules.push( [ name, newValue ] );
@@ -552,4 +578,5 @@
 				resolveListItem = this.utils.resolveList,
 				convertToPx = this.utils.convertToPx,
+				getStyleComponents = this.utils.getStyleComponents,
 				listDtdParents = this.utils.listDtdParents,
 				removeFontStyles = config.pasteFromWordRemoveFontStyles !== false,
@@ -888,9 +915,24 @@
 					// be the ones that could later be altered with editor tools.
 					[
-						[ ( /^margin$|^margin-(?!bottom|top)/ ), null, function( value, element )
-							{
-								if( element.name in { p : 1, div : 1 }
-									&& !emptyMarginRegex.test( value ) )
-									return value;
+						// Preserve margin-left/right which used as default indent style in the editor.
+						[ ( /^margin$|^margin-(?!bottom|top)/ ), null, function( value, element, name )
+							{
+								if( element.name in { p : 1, div : 1 } )
+								{
+									var indentStyleName = config.contentsLangDirection == 'ltr' ?
+											'margin-left' : 'margin-right';
+
+									// Extract component value from 'margin' shorthand.
+									if ( name == 'margin' )
+									{
+										value = getStyleComponents( name, value,
+												[ indentStyleName ] )[ indentStyleName ];
+									}
+									else if ( name != indentStyleName )
+										return;
+
+									if ( value && !emptyMarginRegex.test( value ) )
+										return [ indentStyleName, value ];
+								}
 							} ],
 
