Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 7521)
+++ /CKEditor/trunk/CHANGES.html	(revision 7522)
@@ -66,4 +66,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/9034">#9034</a> : [IE7] Fixed JavaScript error caused by drag-to-select at the bottom 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>
+		<li><a href="http://dev.ckeditor.com/ticket/9063">#9063</a> : Styles on sub-list are lost when decreasing indent of the parent list.</li>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/plugins/indent/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/indent/plugin.js	(revision 7521)
+++ /CKEditor/trunk/_source/plugins/indent/plugin.js	(revision 7522)
@@ -143,6 +143,9 @@
 					listArray[ i ].indent += indentOffset;
 					// Make sure the newly created sublist get a brand-new element of the same type. (#5372)
-					var listRoot = listArray[ i ].parent;
-					listArray[ i ].parent = new CKEDITOR.dom.element( listRoot.getName(), listRoot.getDocument() );
+					if ( indentOffset > 0 )
+					{
+						var listRoot = listArray[ i ].parent;
+						listArray[ i ].parent = new CKEDITOR.dom.element( listRoot.getName(), listRoot.getDocument() );
+					}
 				}
 
Index: /CKEditor/trunk/_source/plugins/list/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/list/plugin.js	(revision 7521)
+++ /CKEditor/trunk/_source/plugins/list/plugin.js	(revision 7522)
@@ -30,4 +30,15 @@
 				element.removeAttribute( 'dir' );
 		}
+	}
+
+	// Inheirt inline styles from another element.
+	function inheirtInlineStyles( parent, el )
+	{
+		var style = parent.getAttribute( 'style' );
+
+		// Put parent styles before child styles.
+		style && el.setAttribute( 'style',
+			style.replace( /([^;])$/, '$1;' ) +
+			( el.getAttribute( 'style' ) || '' ) );
 	}
 
@@ -110,4 +121,5 @@
 			{
 				var item = listArray[ currentIndex ],
+					itemParent = item.parent,
 					itemGrandParent = item.grandparent;
 
@@ -148,4 +160,12 @@
 				else if ( item.indent == -1 && !baseIndex && itemGrandParent )
 				{
+					// We're leaving this parent list, inherit it's inline styles.
+					var listNode = itemParent.clone();
+					if ( listNode.hasAttribute( 'style' ) )
+					{
+						listNode.removeStyle( 'list-style-type' );
+						inheirtInlineStyles( listNode, item.element );
+					}
+					
 					if ( listNodeNames[ itemGrandParent.getName() ] )
 						currentListItem = item.element.clone( false, true );
@@ -176,8 +196,5 @@
 								child.setAttribute( 'dir', orgDir );
 
-							// Merge into child styles.
-							style && child.setAttribute( 'style',
-										 style.replace( /([^;])$/, '$1;') +
-										 ( child.getAttribute( 'style' ) || '' ) );
+							inheirtInlineStyles( li, child );
 
 							className && child.addClass( className );
