Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 7519)
+++ /CKEditor/trunk/CHANGES.html	(revision 7520)
@@ -64,4 +64,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/8978">#8978</a> : [IE] Saved editor text selection is lost after close menu.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/9022">#9022</a> : [IE7] Fixed wrong selection introduced in empty editor document when click to the bottom-right of the document.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/9057">#9057</a> : Unexpected block established when decreasing indent of a styled list item.</li>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/plugins/list/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/list/plugin.js	(revision 7519)
+++ /CKEditor/trunk/_source/plugins/list/plugin.js	(revision 7520)
@@ -109,5 +109,6 @@
 			while ( 1 )
 			{
-				var item = listArray[ currentIndex ];
+				var item = listArray[ currentIndex ],
+					itemGrandParent = item.grandparent;
 
 				orgDir = item.element.getDirection( 1 );
@@ -145,7 +146,7 @@
 					currentIndex = listData.nextIndex;
 				}
-				else if ( item.indent == -1 && !baseIndex && item.grandparent )
-				{
-					if ( listNodeNames[ item.grandparent.getName() ] )
+				else if ( item.indent == -1 && !baseIndex && itemGrandParent )
+				{
+					if ( listNodeNames[ itemGrandParent.getName() ] )
 						currentListItem = item.element.clone( false, true );
 					else
@@ -154,10 +155,13 @@
 					// Migrate all children to the new container,
 					// apply the proper text direction.
-					var dirLoose = item.grandparent.getDirection( 1 ) != orgDir,
-						needsBlock = currentListItem.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT &&
-									 paragraphMode != CKEDITOR.ENTER_BR,
+					var dirLoose = itemGrandParent.getDirection( 1 ) != orgDir,
 						li = item.element,
 						className = li.getAttribute( 'class' ),
 						style = li.getAttribute( 'style' );
+
+					var needsBlock = currentListItem.type ==
+					                 CKEDITOR.NODE_DOCUMENT_FRAGMENT &&
+					                 ( paragraphMode != CKEDITOR.ENTER_BR || dirLoose ||
+					                   style || className );
 
 					var child, count = item.contents.length;
@@ -179,5 +183,5 @@
 							className && child.addClass( className );
 						}
-						else if ( dirLoose || needsBlock || style || className )
+						else if ( needsBlock )
 						{
 							// Establish new block to hold text direction and styles.
