Index: /CKEditor/branches/versions/3.5.x/CHANGES.html
===================================================================
--- /CKEditor/branches/versions/3.5.x/CHANGES.html	(revision 6074)
+++ /CKEditor/branches/versions/3.5.x/CHANGES.html	(revision 6075)
@@ -36,8 +36,10 @@
 	</h1>
 	<h3>
+			CKEditor 3.4.3 (SVN)</h3>
 			CKEditor 3.5 (SVN)</h3>
 	<p>
 			New features:</p>
 	<ul>
+		<li></li>
 		<li><a href="http://dev.ckeditor.com/ticket/5755">#5755</a> : Introduced the <a href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.dialog_buttonsOrder">dialog_buttonsOrder</a> setting, making it possible to control the buttons order.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/4648">#4648</a> : Added the new Iframe plugin.</li>
@@ -51,4 +53,10 @@
 		<li><a href="http://dev.ckeditor.com/ticket/5587">#5587</a> : Visual improvements in dialogs.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/4652">#4652</a> : Config for disable editor context menu.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6569">#6569</a> : Indentation now honors text direction of the only item.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6579">#6579</a> : The jQuery adapter wasn't working properly tunning on incompatible environments.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6471">#6471</a> : BIDI: Pressing decrease indent in an RTL bulleted list causes incorrect behaviour.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6644">#6644</a> : Restrict onmousedown handler to the toolbar area.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6656">#6656</a> : Panelbutton's buttons became active when clicking on source.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5404">#5404</a> : Whitespaces (NBSP) were incorrectly added into empty table cells and list items.</li>
 		<li>Updated the following language files:<ul>
 			<li>Hebrew;</li>
@@ -67,5 +75,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/5237">#5237</a> : English text in dialogs' title was flipped when using RTL language (office2003 and v2 skins).</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6289">#6289</a> : Deleting nested table removed the parent cell.</li>
-		<li><a href="http://dev.ckeditor.com/ticket/6341">#6341</a> : The editor contents now has the text cursor.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6341">#6341</a> : The editor contents now have the text cursor.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6153">#6153</a> : Chrome: tab focus is wrong.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6261">#6261</a> : Focus and infinite loop between multiple editors.</li>
@@ -82,5 +90,4 @@
 		<li><a href="http://dev.ckeditor.com/ticket/6377">#6377</a> : FF width and height are not shown for smiley in Image properties dialog.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/5399">#5399</a> : Lists pasted from Word do not maintain their nesting.</li>
-		<li><a href="http://dev.ckeditor.com/ticket/6225">#6225</a> : [FF] Can not transform sevaral lines to list with enterMode BR.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6467">#6467</a> : [FF] It is now possible to disable the plugin command on "mode" event.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6461">#6461</a> : Attributes are now being kept when changing block formatting.</li>
@@ -89,5 +96,4 @@
 		<li><a href="http://dev.ckeditor.com/ticket/6444">#6444</a> : [Opera] Close panels and dialogs don't return focus to wysiwyg frame.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6332">#6332</a> : IE: V2 skin bottom dialog's border broken.</li>
-		<li><a href="http://dev.ckeditor.com/ticket/5646">#5646</a> : Parser incorreclty removes inline element when there's only one comment node enclosed.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6189">#6189</a> : Minor code size reduction.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/5045">#5045</a> : uiColor behaved wrong if multiple editors were used with period in their names.</li>
Index: /CKEditor/branches/versions/3.5.x/_source/adapters/jquery.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/adapters/jquery.js	(revision 6074)
+++ /CKEditor/branches/versions/3.5.x/_source/adapters/jquery.js	(revision 6075)
@@ -98,4 +98,7 @@
 		ckeditor: function( callback, config )
 		{
+			if ( !CKEDITOR.env.isCompatible )
+				return this;
+
 			if ( !jQuery.isFunction( callback ))
 			{
Index: /CKEditor/branches/versions/3.5.x/_source/core/dom/range.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/core/dom/range.js	(revision 6074)
+++ /CKEditor/branches/versions/3.5.x/_source/core/dom/range.js	(revision 6075)
@@ -1406,5 +1406,5 @@
 			if( startNode.type == CKEDITOR.NODE_ELEMENT
 				&& CKEDITOR.dtd.$empty[ startNode.getName() ] )
-				startNode = startNode.getParent(), startOffset = startNode.getIndex();
+				startOffset = startNode.getIndex(), startNode = startNode.getParent();
 
 			this.startContainer	= startNode;
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/htmldataprocessor/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/htmldataprocessor/plugin.js	(revision 6074)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/htmldataprocessor/plugin.js	(revision 6075)
@@ -39,6 +39,15 @@
 	}
 
-	function blockNeedsExtension( block )
-	{
+	function blockNeedsExtension( block, fromSource )
+	{
+        // 1. For IE version >=8,  empty blocks are displayed correctly themself in wysiwiyg;
+        // 2. For the rest, at least table cell and list item need no filler space.
+        // (#6248)
+        if ( fromSource && CKEDITOR.env.ie && 
+                ( document.documentMode > 7
+                || block.name in CKEDITOR.dtd.tr
+                || block.name in CKEDITOR.dtd.$listItem ) )
+            return false;
+
 		var lastChild = lastNoneSpaceChild( block );
 
@@ -54,5 +63,5 @@
 		trimFillers( block, true );
 
-		if ( blockNeedsExtension( block ) )
+		if ( blockNeedsExtension( block, true ) )
 		{
 			if ( CKEDITOR.env.ie )
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/indent/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/indent/plugin.js	(revision 6074)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/indent/plugin.js	(revision 6075)
@@ -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 );
 				}
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/list/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/list/plugin.js	(revision 6074)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/list/plugin.js	(revision 6075)
@@ -89,4 +89,5 @@
 					{
 						rootNode = listArray[ currentIndex ].parent.clone( false, 1 );
+						dir && rootNode.setAttribute( 'dir', dir );
 						retval.append( rootNode );
 					}
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/listblock/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/listblock/plugin.js	(revision 6074)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/listblock/plugin.js	(revision 6075)
@@ -94,5 +94,5 @@
 
 						pendingHtml.push(
-							'<li id=', id, ' class=cke_panel_listItem>' +
+							'<li id=', id, ' class=cke_panel_listItem role=presentation>' +
 								'<a id="', id, '_option" _cke_focus=1 hidefocus=true' +
 									' title="', title || value, '"' +
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/panelbutton/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/panelbutton/plugin.js	(revision 6074)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/panelbutton/plugin.js	(revision 6075)
@@ -94,5 +94,5 @@
 
 				var panelDefinition = this._.panelDefinition || {},
-					 panelBlockDefinition = this._.panelDefinition.block,
+					panelBlockDefinition = this._.panelDefinition.block,
 					panelParentElement = panelDefinition.parent || CKEDITOR.document.getBody(),
 					panel = this._.panel = new CKEDITOR.ui.floatPanel( editor, panelParentElement, panelDefinition ),
@@ -105,5 +105,4 @@
 							this.element.getFirst().addClass( me.className + '_panel' );
 
-						_.oldState = me._.state;
 						me.setState( CKEDITOR.TRISTATE_ON );
 
@@ -119,5 +118,5 @@
 							this.element.getFirst().removeClass( me.className + '_panel' );
 
-						me.setState( _.oldState );
+						me.setState( me.modes && me.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
 
 						_.on = 0;
@@ -137,8 +136,8 @@
 
 				block.onHide = function()
-						{
-								_.on = 0;
-								me.setState( CKEDITOR.TRISTATE_OFF );
-						};
+					{
+						_.on = 0;
+						me.setState( CKEDITOR.TRISTATE_OFF );
+					};
 			}
 		}
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/sourcearea/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/sourcearea/plugin.js	(revision 6074)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/sourcearea/plugin.js	(revision 6075)
@@ -72,15 +72,4 @@
 								win.on( 'resize', onResize );
 								setTimeout( onResize, 0 );
-							}
-							// As we prevent click to put focus on editor container,
-							// while 'mousedown' inside <textarea> is also captured,
-							// but we must stop the even propagation, otherwise
-							// it's not possible to place the caret inside of it (non IE and IE9).
-							if ( document.addEventListener )
-							{
-								textarea.on( 'mousedown', function( evt )
-									{
-										evt.data.stopPropagation();
-									} );
 							}
 
Index: /CKEditor/branches/versions/3.5.x/_source/plugins/toolbar/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/plugins/toolbar/plugin.js	(revision 6074)
+++ /CKEditor/branches/versions/3.5.x/_source/plugins/toolbar/plugin.js	(revision 6075)
@@ -160,5 +160,5 @@
 						var labelId = CKEDITOR.tools.getNextId();
 
-						var output = [ '<div class="cke_toolbox" role="toolbar" aria-labelledby="', labelId, '"' ],
+						var output = [ '<div class="cke_toolbox" role="toolbar" aria-labelledby="', labelId, '" onmousedown="return false;"' ],
 							expanded =  editor.config.toolbarStartupExpanded !== false,
 							groupStarted;
Index: /CKEditor/branches/versions/3.5.x/_source/themes/default/theme.js
===================================================================
--- /CKEditor/branches/versions/3.5.x/_source/themes/default/theme.js	(revision 6074)
+++ /CKEditor/branches/versions/3.5.x/_source/themes/default/theme.js	(revision 6075)
@@ -119,5 +119,4 @@
 				'<span' +
 					' id="cke_', name, '"' +
-					' onmousedown="return false;"' +
 					' class="', editor.skinClass, ' ', editor.id, ' cke_editor_', name, '"' +
 					' dir="', editor.lang.dir, '"' +
