Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 6051)
+++ /CKEditor/trunk/CHANGES.html	(revision 6052)
@@ -40,5 +40,5 @@
 			New features:</p>
 	<ul>
-		<li></li>
+		<li><a href="http://dev.ckeditor.com/ticket/6569">#6569</a> : Indentation now honors text direction of the only item.</li>
 	</ul>
 	<p>
Index: /CKEditor/trunk/_source/plugins/indent/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/indent/plugin.js	(revision 6051)
+++ /CKEditor/trunk/_source/plugins/indent/plugin.js	(revision 6052)
@@ -79,7 +79,7 @@
 
 	// Returns the CSS property to be used for identing a given element.
-	function getIndentCssProperty( element )
-	{
-		return element.getComputedStyle( 'direction' ) == 'ltr' ? 'margin-left' : 'margin-right';
+	function getIndentCssProperty( element, dir )
+	{
+		return ( dir || element.getComputedStyle( 'direction' ) ) == 'ltr' ? 'margin-left' : 'margin-right';
 	}
 
@@ -158,6 +158,5 @@
 				// Convert the array back to a DOM forest (yes we might have a few subtrees now).
 				// And replace the old list with the new forest.
-				var newListDir = listNode.getAttribute( 'dir' ) || listNode.getStyle( 'direction' );
-				var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode, newListDir );
+				var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode, listNode.getDirection() );
 
 				// Avoid nested <li> after outdent even they're visually same,
@@ -221,5 +220,5 @@
 			}
 
-			function indentElement( element )
+			function indentElement( element, dir )
 			{
 				if ( element.getCustomData( 'indent_processed' ) )
@@ -257,5 +256,5 @@
 				else
 				{
-					var indentCssProperty = getIndentCssProperty( element ),
+					var indentCssProperty = getIndentCssProperty( element, dir ),
 						currentOffset = parseInt( element.getStyle( indentCssProperty ), 10 );
 					if ( isNaN( currentOffset ) )
@@ -329,8 +328,6 @@
 				if ( nearestListBlock )
 				{
-					var firstListItem = nearestListBlock.getFirst( function( node )
-						{
-							return node.type == CKEDITOR.NODE_ELEMENT && node.is( 'li' );
-						}),
+					var firstListItem = nearestListBlock.getFirst( isListItem ),
+						hasMultipleItems = !!firstListItem.getNext( isListItem ),
 						rangeStart = range.startContainer,
 						indentWholeList = firstListItem.equals( rangeStart ) || firstListItem.contains( rangeStart );
@@ -340,5 +337,5 @@
 					if ( !( indentWholeList &&
 						( self.name == 'indent' || self.useIndentClasses || parseInt( nearestListBlock.getStyle( getIndentCssProperty( nearestListBlock ) ), 10 ) ) &&
-							indentElement( nearestListBlock ) ) )
+							indentElement( nearestListBlock, !hasMultipleItems && firstListItem.getDirection() ) ) )
 								indentList( nearestListBlock );
 				}
