Index: /CKEditor/branches/versions/3.4.x/CHANGES.html
===================================================================
--- /CKEditor/branches/versions/3.4.x/CHANGES.html	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/CHANGES.html	(revision 6234)
@@ -35,4 +35,33 @@
 		CKEditor Changelog
 	</h1>
+	<h3>
+			CKEditor 3.5 (SVN)</h3>
+	<p>
+			New features:</p>
+	<ul>
+		<li></li>
+	</ul>
+	<p>
+			Fixed issues:</p>
+	<ul>
+		<li><a href="http://dev.ckeditor.com/ticket/6419">#6419</a> : IE: List creation by merging problem.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5599">#5599</a> : Labels for special characters need to be resourced.</li>
+	</ul>
+	<h3>
+			CKEditor 3.4.3 (SVN)</h3>
+	<p>
+			New features:</p>
+	<ul>
+		<li></li>
+	</ul>
+	<p>
+			Fixed issues:</p>
+	<ul>
+		<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/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>
+	</ul>
 	<h3>
 			CKEditor 3.4.2</h3>
Index: /CKEditor/branches/versions/3.4.x/_dev/releaser/release.bat
===================================================================
--- /CKEditor/branches/versions/3.4.x/_dev/releaser/release.bat	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_dev/releaser/release.bat	(revision 6234)
@@ -11,3 +11,3 @@
 :: rmdir /S /Q release
 
-java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.4.2" ckeditor_3.4.2 --run-before-release=langtool.bat
+java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.4.3 (SVN)" ckeditor_3.4.3_svn --run-before-release=langtool.bat
Index: /CKEditor/branches/versions/3.4.x/_dev/releaser/release.sh
===================================================================
--- /CKEditor/branches/versions/3.4.x/_dev/releaser/release.sh	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_dev/releaser/release.sh	(revision 6234)
@@ -13,4 +13,4 @@
 
 pushd $DIR
-java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.4.2" ckeditor_3.4.2 --run-before-release=$LANGTOOL
+java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.4.3 (SVN)" ckeditor_3.4.3_svn --run-before-release=$LANGTOOL
 popd
Index: /CKEditor/branches/versions/3.4.x/_source/adapters/jquery.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/adapters/jquery.js	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_source/adapters/jquery.js	(revision 6234)
@@ -98,4 +98,7 @@
 		ckeditor: function( callback, config )
 		{
+			if ( !CKEDITOR.env.isCompatible )
+				return this;
+
 			if ( !jQuery.isFunction( callback ))
 			{
Index: /CKEditor/branches/versions/3.4.x/_source/core/dom/domobject.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/core/dom/domobject.js	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_source/core/dom/domobject.js	(revision 6234)
@@ -168,4 +168,7 @@
 	 * Sets a data slot value for this object. These values are shared by all
 	 * instances pointing to that same DOM object.
+	 * <strong>Note:</strong> The created data slot is only guarantied to be available on this unique dom node,
+	 * thus any wish to continue access it from other element clones (either created by clone node or from innerHtml)
+	 * will fail, for such usage, please use {@link CKEDITOR.dom.element::setAttribute} instead.
 	 * @name CKEDITOR.dom.domObject.prototype.setCustomData
 	 * @function
Index: /CKEditor/branches/versions/3.4.x/_source/core/dom/node.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/core/dom/node.js	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_source/core/dom/node.js	(revision 6234)
@@ -108,22 +108,23 @@
 			var $clone = this.$.cloneNode( includeChildren );
 
-			if ( !cloneId )
-			{
-				var removeIds = function( node )
-				{
-					if ( node.nodeType != CKEDITOR.NODE_ELEMENT )
-						return;
-
-					node.removeAttribute( 'id', false ) ;
-					node.removeAttribute( '_cke_expando', false ) ;
-
+			var removeIds = function( node )
+			{
+				if ( node.nodeType != CKEDITOR.NODE_ELEMENT )
+					return;
+
+				if ( !cloneId )
+					node.removeAttribute( 'id', false );
+				node.removeAttribute( '_cke_expando', false );
+
+				if ( includeChildren )
+				{
 					var childs = node.childNodes;
-					for ( var i=0 ; i < childs.length ; i++ )
+					for ( var i=0; i < childs.length; i++ )
 						removeIds( childs[ i ] );
-				};
-
-				// The "id" attribute should never be cloned to avoid duplication.
-				removeIds( $clone );
-			}
+				}
+			};
+
+			// The "id" attribute should never be cloned to avoid duplication.
+			removeIds( $clone );
 
 			return new CKEDITOR.dom.node( $clone );
Index: /CKEditor/branches/versions/3.4.x/_source/core/dom/range.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/core/dom/range.js	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_source/core/dom/range.js	(revision 6234)
@@ -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.4.x/_source/plugins/htmldataprocessor/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/htmldataprocessor/plugin.js	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/htmldataprocessor/plugin.js	(revision 6234)
@@ -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.4.x/_source/plugins/indent/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/indent/plugin.js	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/indent/plugin.js	(revision 6234)
@@ -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.4.x/_source/plugins/listblock/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/listblock/plugin.js	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/listblock/plugin.js	(revision 6234)
@@ -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.4.x/_source/plugins/panelbutton/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/panelbutton/plugin.js	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/panelbutton/plugin.js	(revision 6234)
@@ -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.4.x/_source/plugins/sourcearea/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/sourcearea/plugin.js	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/sourcearea/plugin.js	(revision 6234)
@@ -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.4.x/_source/plugins/specialchar/dialogs/specialchar.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/specialchar/dialogs/specialchar.js	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/specialchar/dialogs/specialchar.js	(revision 6234)
@@ -223,46 +223,9 @@
 		buttons : [ CKEDITOR.dialog.cancelButton ],
 		charColumns : 17,
-		chars :
-			[
-				'!','&quot;','#','$','%','&amp;',"'",'(',')','*','+','-','.','/',
-				'0','1','2','3','4','5','6','7','8','9',':',';',
-				'&lt;','=','&gt;','?','@',
-				'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
-				'P','Q','R','S','T','U','V','W','X','Y','Z',
-				'[',']','^','_','`',
-				'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p',
-				'q','r','s','t','u','v','w','x','y','z',
-				'{','|','}','~','&euro;(EURO SIGN)','&lsquo;(LEFT SINGLE QUOTATION MARK)','&rsquo;(RIGHT SINGLE QUOTATION MARK)','&ldquo;(LEFT DOUBLE QUOTATION MARK)',
-				'&rdquo;(RIGHT DOUBLE QUOTATION MARK)','&ndash;(EN DASH)','&mdash;(EM DASH)','&iexcl;(INVERTED EXCLAMATION MARK)','&cent;(CENT SIGN)','&pound;(POUND SIGN)',
-				'&curren;(CURRENCY SIGN)','&yen;(YEN SIGN)','&brvbar;(BROKEN BAR)','&sect;(SECTION SIGN)','&uml;(DIAERESIS)','&copy;(COPYRIGHT SIGN)','&ordf;(FEMININE ORDINAL INDICATOR)',
-				'&laquo;(LEFT-POINTING DOUBLE ANGLE QUOTATION MARK)','&not;(NOT SIGN)','&reg;(REGISTERED SIGN)','&macr;(MACRON)','&deg;(DEGREE SIGN)','&plusmn;(PLUS-MINUS SIGN)','&sup2;(SUPERSCRIPT TWO)',
-				'&sup3;(SUPERSCRIPT THREE)','&acute;(ACUTE ACCENT)','&micro;(MICRO SIGN)','&para;(PILCROW SIGN)','&middot;(MIDDLE DOT)','&cedil;(CEDILLA)',
-				'&sup1;(SUPERSCRIPT ONE)','&ordm;(MASCULINE ORDINAL INDICATOR)','&raquo;(RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK)','&frac14;(VULGAR FRACTION ONE QUARTER)','&frac12;(VULGAR FRACTION ONE HALF)','&frac34;(VULGAR FRACTION THREE QUARTERS)',
-				'&iquest;(INVERTED QUESTION MARK)','&Agrave;(LATIN CAPITAL LETTER A WITH GRAVE)','&Aacute;(LATIN CAPITAL LETTER A WITH ACUTE)','&Acirc;(LATIN CAPITAL LETTER A WITH CIRCUMFLEX)','&Atilde;(LATIN CAPITAL LETTER A WITH TILDE)','&Auml;(LATIN CAPITAL LETTER A WITH DIAERESIS)',
-				'&Aring;(LATIN CAPITAL LETTER A WITH RING ABOVE)','&AElig;(LATIN CAPITAL LETTER AE)','&Ccedil;(LATIN CAPITAL LETTER C WITH CEDILLA)','&Egrave;(LATIN CAPITAL LETTER E WITH GRAVE)','&Eacute;(LATIN CAPITAL LETTER E WITH ACUTE)','&Ecirc;(LATIN CAPITAL LETTER E WITH CIRCUMFLEX)',
-				'&Euml;(LATIN CAPITAL LETTER E WITH DIAERESIS)','&Igrave;(LATIN CAPITAL LETTER I WITH GRAVE)','&Iacute;(LATIN CAPITAL LETTER I WITH ACUTE)','&Icirc;(LATIN CAPITAL LETTER I WITH CIRCUMFLEX)','&Iuml;(LATIN CAPITAL LETTER I WITH DIAERESIS)','&ETH;(LATIN CAPITAL LETTER ETH)',
-				'&Ntilde;(LATIN CAPITAL LETTER N WITH TILDE)','&Ograve;(LATIN CAPITAL LETTER O WITH GRAVE)','&Oacute;(LATIN CAPITAL LETTER O WITH ACUTE)','&Ocirc;(LATIN CAPITAL LETTER O WITH CIRCUMFLEX)','&Otilde;(LATIN CAPITAL LETTER O WITH TILDE)','&Ouml;(LATIN CAPITAL LETTER O WITH DIAERESIS)',
-				'&times;(MULTIPLICATION SIGN)','&Oslash;(LATIN CAPITAL LETTER O WITH STROKE)','&Ugrave;(LATIN CAPITAL LETTER U WITH GRAVE)','&Uacute;(LATIN CAPITAL LETTER U WITH ACUTE)','&Ucirc;(LATIN CAPITAL LETTER U WITH CIRCUMFLEX)','&Uuml;(LATIN CAPITAL LETTER U WITH DIAERESIS)',
-				'&Yacute;(LATIN CAPITAL LETTER Y WITH ACUTE)','&THORN;(LATIN CAPITAL LETTER THORN)','&szlig;(LATIN SMALL LETTER SHARP S)','&agrave;(LATIN SMALL LETTER A WITH GRAVE)','&aacute;(LATIN SMALL LETTER A WITH ACUTE)','&acirc;(LATIN SMALL LETTER A WITH CIRCUMFLEX)',
-				'&atilde;(LATIN SMALL LETTER A WITH TILDE)','&auml;(LATIN SMALL LETTER A WITH DIAERESIS)','&aring;(LATIN SMALL LETTER A WITH RING ABOVE)','&aelig;(LATIN SMALL LETTER AE)','&ccedil;(LATIN SMALL LETTER C WITH CEDILLA)','&egrave;(LATIN SMALL LETTER E WITH GRAVE)',
-				'&eacute;(LATIN SMALL LETTER E WITH ACUTE)','&ecirc;(LATIN SMALL LETTER E WITH CIRCUMFLEX)','&euml;(LATIN SMALL LETTER E WITH DIAERESIS)','&igrave;(LATIN SMALL LETTER I WITH GRAVE)','&iacute;(LATIN SMALL LETTER I WITH ACUTE)','&icirc;(LATIN SMALL LETTER I WITH CIRCUMFLEX)',
-				'&iuml;(LATIN SMALL LETTER I WITH DIAERESIS)','&eth;(LATIN SMALL LETTER ETH)','&ntilde;(LATIN SMALL LETTER N WITH TILDE)','&ograve;(LATIN SMALL LETTER O WITH GRAVE)','&oacute;(LATIN SMALL LETTER O WITH ACUTE)','&ocirc;(LATIN SMALL LETTER O WITH CIRCUMFLEX)',
-				'&otilde;(LATIN SMALL LETTER O WITH TILDE)','&ouml;(LATIN SMALL LETTER O WITH DIAERESIS)',
-				'&divide;(DIVISION SIGN)','&oslash;(LATIN SMALL LETTER O WITH STROKE)',
-				'&ugrave;(LATIN SMALL LETTER U WITH GRAVE)','&uacute;(LATIN SMALL LETTER U WITH ACUTE)',
-				'&ucirc;(LATIN SMALL LETTER U WITH CIRCUMFLEX)','&uuml;(LATIN SMALL LETTER U WITH DIAERESIS)',
-				'&uuml;(LATIN SMALL LETTER U WITH DIAERESIS)','&yacute;(LATIN SMALL LETTER Y WITH ACUTE)','&thorn;(LATIN SMALL LETTER THORN)','&yuml;(LATIN SMALL LETTER Y WITH DIAERESIS)',
-				'&OElig;(LATIN CAPITAL LIGATURE OE)',
-				'&oelig;(LATIN SMALL LIGATURE OE)','&#372;(LATIN CAPITAL LETTER W WITH CIRCUMFLEX)',
-				'&#374(LATIN CAPITAL LETTER Y WITH CIRCUMFLEX)','&#373(LATIN SMALL LETTER W WITH CIRCUMFLEX)',
-				'&#375;(LATIN SMALL LETTER Y WITH CIRCUMFLEX)','&sbquo;(SINGLE LOW-9 QUOTATION MARK)',
-				'&#8219;(SINGLE HIGH-REVERSED-9 QUOTATION MARK)','&bdquo;(DOUBLE LOW-9 QUOTATION MARK)','&hellip;(HORIZONTAL ELLIPSIS)',
-				'&trade;(TRADE MARK SIGN)','&#9658;(BLACK RIGHT-POINTING POINTER)','&bull;(BULLET)',
-				'&rarr;(RIGHTWARDS ARROW)','&rArr;(RIGHTWARDS DOUBLE ARROW)','&hArr;(LEFT RIGHT DOUBLE ARROW)','&diams;(BLACK DIAMOND SUIT)','&asymp;(ALMOST EQUAL TO)'
-			],
 		onLoad :  function()
 		{
 			var columns = this.definition.charColumns,
-				chars = this.definition.chars;
+				extraChars = editor.config.extraSpecialChars,
+				chars = editor.config.specialChars;
 
 			var charsTableLabel =  CKEDITOR.tools.getNextId() + '_specialchar_table_label';
@@ -285,12 +248,17 @@
 					{
 						charDesc = '';
-						character = character.replace( /\((.*?)\)/, function( match, desc )
-							{
-								charDesc = desc;
-								return '';
-							} );
-
-						// Use character in case description unavailable.
-						charDesc = charDesc || character;
+						
+						if ( character instanceof Array )
+						{
+							charDesc = character[ 1 ];
+							character = character[ 0 ];
+						}
+						else
+						{
+							var _tmpName = character.toLowerCase().replace( '&', '' ).replace( ';', '' ).replace( '#', '' );
+
+							// Use character in case description unavailable.
+							charDesc = lang[ _tmpName ] || character;
+						}
 
 						var charLabelId =  'cke_specialchar_label_' + i + '_' + CKEDITOR.tools.getNextNumber();
Index: /CKEditor/branches/versions/3.4.x/_source/plugins/specialchar/lang/en.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/specialchar/lang/en.js	(revision 6234)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/specialchar/lang/en.js	(revision 6234)
@@ -0,0 +1,89 @@
+
+CKEDITOR.plugins.setLang( 'specialchar', 'en',
+{
+	euro: "EURO SIGN",
+	lsquo: "LEFT SINGLE QUOTATION MARK",
+	rsquo: "RIGHT SINGLE QUOTATION MARK",
+	ldquo: "LEFT DOUBLE QUOTATION MARK",
+	rdquo: "RIGHT DOUBLE QUOTATION MARK",
+	ndash: "EN DASH",
+	mdash: "EM DASH",
+	iexcl: "INVERTED EXCLAMATION MARK",
+	cent: "CENT SIGN",
+	pound: "POUND SIGN",
+	curren: "CURRENCY SIGN",
+	yen: "YEN SIGN",
+	brvbar: "BROKEN BAR",
+	sect: "SECTION SIGN",
+	uml: "DIAERESIS",
+	copy: "COPYRIGHT SIGN",
+	ordf: "FEMININE ORDINAL INDICATOR",
+	laquo: "LEFT-POINTING DOUBLE ANGLE QUOTATION MARK",
+	not: "NOT SIGN",
+	reg: "REGISTERED SIGN",
+	macr: "MACRON",
+	deg: "DEGREE SIGN",
+	sup2: "SUPERSCRIPT TWO",
+	sup3: "SUPERSCRIPT THREE",
+	acute: "ACUTE ACCENT",
+	micro: "MICRO SIGN",
+	para: "PILCROW SIGN",
+	middot: "MIDDLE DOT",
+	cedil: "CEDILLA",
+	sup1: "SUPERSCRIPT ONE",
+	ordm: "MASCULINE ORDINAL INDICATOR",
+	frac14: "VULGAR FRACTION ONE QUARTER",
+	frac12: "VULGAR FRACTION ONE HALF",
+	frac34: "VULGAR FRACTION THREE QUARTERS",
+	iquest: "INVERTED QUESTION MARK",
+	agrave: "LATIN SMALL LETTER A WITH GRAVE",
+	aacute: "LATIN SMALL LETTER A WITH ACUTE",
+	acirc: "LATIN SMALL LETTER A WITH CIRCUMFLEX",
+	atilde: "LATIN SMALL LETTER A WITH TILDE",
+	auml: "LATIN SMALL LETTER A WITH DIAERESIS",
+	aring: "LATIN SMALL LETTER A WITH RING ABOVE",
+	aelig: "LATIN SMALL LETTER AE",
+	ccedil: "LATIN SMALL LETTER C WITH CEDILLA",
+	egrave: "LATIN SMALL LETTER E WITH GRAVE",
+	eacute: "LATIN SMALL LETTER E WITH ACUTE",
+	ecirc: "LATIN SMALL LETTER E WITH CIRCUMFLEX",
+	euml: "LATIN SMALL LETTER E WITH DIAERESIS",
+	igrave: "LATIN SMALL LETTER I WITH GRAVE",
+	iacute: "LATIN SMALL LETTER I WITH ACUTE",
+	icirc: "LATIN SMALL LETTER I WITH CIRCUMFLEX",
+	iuml: "LATIN SMALL LETTER I WITH DIAERESIS",
+	eth: "LATIN SMALL LETTER ETH",
+	ntilde: "LATIN SMALL LETTER N WITH TILDE",
+	ograve: "LATIN SMALL LETTER O WITH GRAVE",
+	oacute: "LATIN SMALL LETTER O WITH ACUTE",
+	ocirc: "LATIN SMALL LETTER O WITH CIRCUMFLEX",
+	otilde: "LATIN SMALL LETTER O WITH TILDE",
+	ouml: "LATIN SMALL LETTER O WITH DIAERESIS",
+	times: "MULTIPLICATION SIGN",
+	oslash: "LATIN SMALL LETTER O WITH STROKE",
+	ugrave: "LATIN SMALL LETTER U WITH GRAVE",
+	uacute: "LATIN SMALL LETTER U WITH ACUTE",
+	ucirc: "LATIN SMALL LETTER U WITH CIRCUMFLEX",
+	uuml: "LATIN SMALL LETTER U WITH DIAERESIS",
+	yacute: "LATIN SMALL LETTER Y WITH ACUTE",
+	thorn: "LATIN SMALL LETTER THORN",
+	szlig: "LATIN SMALL LETTER SHARP S",
+	divide: "DIVISION SIGN",
+	yuml: "LATIN SMALL LETTER Y WITH DIAERESIS",
+	oelig: "LATIN SMALL LIGATURE OE",
+	'372': "LATIN CAPITAL LETTER W WITH CIRCUMFLEX",
+	'374': "LATIN CAPITAL LETTER Y WITH CIRCUMFLEX",
+	'373': "LATIN SMALL LETTER W WITH CIRCUMFLEX",
+	'375': "LATIN SMALL LETTER Y WITH CIRCUMFLEX",
+	8219: "SINGLE HIGH-REVERSED-9 QUOTATION MARK",
+	bdquo: "DOUBLE LOW-9 QUOTATION MARK",
+	hellip: "HORIZONTAL ELLIPSIS",
+	trade: "TRADE MARK SIGN",
+	'9658': "BLACK RIGHT-POINTING POINTER",
+	bull: "BULLET",
+	rarr: "RIGHTWARDS DOUBLE ARROW",
+	harr: "LEFT RIGHT DOUBLE ARROW",
+	diams: "BLACK DIAMOND SUIT",
+	asymp: "ALMOST EQUAL TO",
+	sbquo: 'SINGLE LOW-9 QUOTATION MARK'
+});
Index: /CKEditor/branches/versions/3.4.x/_source/plugins/specialchar/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/specialchar/plugin.js	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/specialchar/plugin.js	(revision 6234)
@@ -10,13 +10,33 @@
 CKEDITOR.plugins.add( 'specialchar',
 {
+	// List of available localizations.
+	availableLangs : { en:1 },
+	
 	init : function( editor )
 	{
-		var pluginName = 'specialchar';
+		var pluginName = 'specialchar',
+			plugin = this;
 
 		// Register the dialog.
 		CKEDITOR.dialog.add( pluginName, this.path + 'dialogs/specialchar.js' );
 
-		// Register the command.
-		editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) );
+		editor.addCommand( pluginName,
+			{
+				exec : function()
+				{
+					var langCode = editor.langCode;
+					langCode = plugin.availableLangs[ langCode ] ? langCode : 'en';
+
+					CKEDITOR.scriptLoader.load(
+							CKEDITOR.getUrl( plugin.path + 'lang/' + langCode + '.js' ),
+							function()
+							{
+								CKEDITOR.tools.extend( editor.lang.specialChar, plugin.lang[ langCode ] );
+								editor.openDialog( pluginName );
+							});
+				},
+				modes : { wysiwyg:1 },
+				canUndo : false
+			});
 
 		// Register the toolbar button.
@@ -28,2 +48,23 @@
 	}
 } );
+
+/**
+  * The list of special characters visible in Special Character dialog.
+  * @type Array
+  * @example
+  * config.specialChars = [ '&quot;', '&rsquo;', [ '&custom;', 'Custom label' ] ];
+  * config.specialChars = config.specialChars.concat( [ '&quot;', [ '&rsquo;', 'Custom label' ] ] );
+  */
+CKEDITOR.config.specialChars = 
+	[
+		'!','&quot;','#','$','%','&amp;',"'",'(',')','*','+','-','.','/',
+		'0','1','2','3','4','5','6','7','8','9',':',';',
+		'&lt;','=','&gt;','?','@',
+		'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
+		'P','Q','R','S','T','U','V','W','X','Y','Z',
+		'[',']','^','_','`',
+		'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p',
+		'q','r','s','t','u','v','w','x','y','z',
+		'{','|','}','~',
+		"&euro;", "&lsquo;", "&rsquo;", "&ldquo;", "&rdquo;", "&ndash;", "&mdash;", "&iexcl;", "&cent;", "&pound;", "&curren;", "&yen;", "&brvbar;", "&sect;", "&uml;", "&copy;", "&ordf;", "&laquo;", "&not;", "&reg;", "&macr;", "&deg;", "&", "&sup2;", "&sup3;", "&acute;", "&micro;", "&para;", "&middot;", "&cedil;", "&sup1;", "&ordm;", "&", "&frac14;", "&frac12;", "&frac34;", "&iquest;", "&Agrave;", "&Aacute;", "&Acirc;", "&Atilde;", "&Auml;", "&Aring;", "&AElig;", "&Ccedil;", "&Egrave;", "&Eacute;", "&Ecirc;", "&Euml;", "&Igrave;", "&Iacute;", "&Icirc;", "&Iuml;", "&ETH;", "&Ntilde;", "&Ograve;", "&Oacute;", "&Ocirc;", "&Otilde;", "&Ouml;", "&times;", "&Oslash;", "&Ugrave;", "&Uacute;", "&Ucirc;", "&Uuml;", "&Yacute;", "&THORN;", "&szlig;", "&agrave;", "&aacute;", "&acirc;", "&atilde;", "&auml;", "&aring;", "&aelig;", "&ccedil;", "&egrave;", "&eacute;", "&ecirc;", "&euml;", "&igrave;", "&iacute;", "&icirc;", "&iuml;", "&eth;", "&ntilde;", "&ograve;", "&oacute;", "&ocirc;", "&otilde;", "&ouml;", "&divide;", "&oslash;", "&ugrave;", "&uacute;", "&ucirc;", "&uuml;", "&uuml;", "&yacute;", "&thorn;", "&yuml;", "&OElig;", "&oelig;", "&#372;", "&#374", "&#373", "&#375;", "&sbquo;", "&#8219;", "&bdquo;", "&hellip;", "&trade;", "&#9658;", "&bull;", "&rarr;", "&rArr;", "&hArr;", "&diams;", "&asymp;"
+	];
Index: /CKEditor/branches/versions/3.4.x/_source/plugins/toolbar/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/toolbar/plugin.js	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/toolbar/plugin.js	(revision 6234)
@@ -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.4.x/_source/themes/default/theme.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/themes/default/theme.js	(revision 6233)
+++ /CKEditor/branches/versions/3.4.x/_source/themes/default/theme.js	(revision 6234)
@@ -119,5 +119,4 @@
 				'<span' +
 					' id="cke_', name, '"' +
-					' onmousedown="return false;"' +
 					' class="', editor.skinClass, ' ', editor.id, ' cke_editor_', name, '"' +
 					' dir="', editor.lang.dir, '"' +
