Index: CKEditor/branches/versions/3.3.x/CHANGES.html
===================================================================
--- CKEditor/branches/versions/3.3.x/CHANGES.html	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/CHANGES.html	(revision 5306)
@@ -52,10 +52,76 @@
 		New features:</p>
 	<ul>
-		<li></li>
-	</ul>
-	<p>
-		Fixed issues:</p>
-	<ul>
-		<li></li>
+		<li><a href="http://dev.fckeditor.net/ticket/4478">#4478</a> : Enable the SelectAll command in source mode.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5150">#5150</a> : Allow names in the CKEDITOR.config.colorButton_colors setting.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4810">#4810</a> : Adding configuration option for image dialog preview area filling text.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/536">#536</a> : Object style now could be applied on any parent element of current selection.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5290">#5290</a> : Unified stylesSet loading removing dependecies from the styles combo. 
+					Now the configuration entry is named 'config.stylesSet' instead of config.stylesCombo_stylesSet and the default location 
+					is under the 'styles' plugin instead of 'stylescombo'.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5302">#5302</a> : Adding config option 'CKEDITOR.config.forceEnterMode'.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5216">#5216</a> : Extend CKEDITOR.appendTo to allow a data parameter for the initial value.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5352">#5352</a> : Allow to define the stylesSet array in the config object for the editor.</li>
+	</ul>
+	<p>
+		Fixed issues:</p>
+	<ul>
+		<li><a href="http://dev.fckeditor.net/ticket/5152">#5152</a> : Indentation using classes didn't work properly.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4682">#4682</a> : It wasn't possible to edit elements in IE that had some styles like width, height or float.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4750">#4750</a> : Corrected default order of buttons in dialogs for Mac.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4932">#4932</a> : Fixed collapse button not clickable on simple toolbar.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5228">#5228</a> : Link dialog is automatically changes protocol when URLs that starts with '?'.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4877">#4877</a> : Fixed CKEditor displays source code in one long line (IE quirks mode + office2003 skin).</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5132">#5132</a> : Apply inline style leaks into sibling words which are seperated spaces.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3599">#3599</a> : Background color style on sized text displayed as narrow band behind.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4661">#4661</a> : Translation missing in link dialog.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5240">#5240</a> : Flash alignment property is not presented visually.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4910">#4910</a> : Pasting in IE scrolls document to the end.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5041">#5041</a> : Table summary attribute can't be removed with dialog.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5124">#5124</a> : All inline styles cannot be set separately for empty spaces.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3570">#3570</a> : SCAYT marker should not appear in elementspath bar.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4553">#4553</a> : Dirty check result incorrect when editor document is empty.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4555">#4555</a> : Non-released memory when editor is created and destroyed.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5118">#5118</a> : Arrow keys navigation in RTL languages is incorrect.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4721">#4721</a> : Remove attribute 'value' of checkbox in IE.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5278">#5278</a> : IE: Add validation to check for bad window names of popup window.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5171">#5171</a> : Dialogs contains lists don't have proper voice labels.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4791">#4791</a> : Can't place cusor inside a form that end with a checkbox/radio.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4479">#4479</a> : Style combo doesn't reflect the selection until it's first opened.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4717">#4717</a> : 'Unlink' and 'Outdent' command buttons should be disabled on editor startup.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5119">#5119</a> : Disabled command buttons are not being properly marked when focused.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5307">#5307</a> : Hide dialog page cause problem when there's only two remains.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5343">#5343</a> : Active list item ARIA role is wrongly placed.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3599">#3599</a> : Background color style apply to text with font size been narrowly rendered.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4711">#4711</a> : Line break inside preformatted text make it unable to type text at the end of previous line.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4829">#4829</a> : [IE] Apply style from combo has wrong result on manual created selection.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4830">#4830</a> : Retrieving selected element isn't always right, especially selecting using keyboard (SHIFT+ARROW).</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5128">#5128</a> : Element attribute inside preformatted text is incorrectly corrupted when converting to other blocks.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5190">#5190</a> : Template entry should not gain initial focus in templates list dialog.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5238">#5238</a> : Menu button doesn't display arrow icon in high-contrast mode.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3576">#3576</a> : Non-attributed element of the same name with the applied style is correctly removed.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5221">#5221</a> : Insert table into empty document cause JavaScript error thrown.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5242">#5242</a> : Apply 'automatic' color option of text color incorrectly removes background-color style.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4719">#4719</a> : IE does not escape attribute values properly.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5170">#5170</a> : Firefox does not insert  text into element properly.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4026">#4026</a> : Office2003 skin has no toolbar button borders in High Contrast in IE7.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4348">#4348</a> : There should have exception thrown when 'CKEDITOR_BASEPATH' could be figured out automatically.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5364">#5364</a> : Focus may not put into dialog correctly when dialog skin file is loading slow.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4016">#4016</a> : justify the layout of forms select dialog in Chrome and IE7.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5373">#5373</a> : fix pathBlockElements wrong items in elementpath.js.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5082">#5082</a> : Ctrl key should be described as Cmd key on Mac.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5182">#5182</a> : Context menu is not been announced correctly by ATs.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4898">#4898</a> : Can't navigate outside table inside the last paragraph of document.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4950">#4950</a> : List commands could compromise list item attribute and styles.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5018">#5018</a> : Find result highlight remove normal font color styles unintentionally.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5376">#5376</a> : Unable to exit list from within a empty block inside list item.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5145">#5145</a> : Various SCAYT fixes.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5319">#5319</a> : Match whole word doesn't work after replacement happened.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5363">#5363</a> : 'title' attribute now presents on all editor iframes.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5374">#5374</a> : Unable to toggle inline style when selection start from the linefeed of the previous paragraph.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4513">#4513</a> : Selected link element is not always correctly detected when using keyboard arrows to perform such selection.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5372">#5372</a> : Newly created sub list should not inheirt nothing from the original (parent) list except list type.</li>
+		<li>Updated the following language files:<ul>
+			<li>Faroese;</li>
+		</ul></li>
 	</ul>
 	<h3>
@@ -103,5 +169,5 @@
 		<li><a href="http://dev.fckeditor.net/ticket/4640">#4640</a> : Small optimizations for the fileBrowser plugin.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4583">#4583</a> : The "Target Frame Name" field is now visible when target is set to 'frame' only.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/4863">#4863</a> : Fixing iframedialog's height doesn't stretch to 100%.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4863">#4863</a> : Fixing iframedialog's height doesn't stretch to 100% (except IE Quirks).</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4964">#4964</a> : The BACKSPACE key positioning was not correct in some cases with Firefox.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4980">#4980</a> : Setting border, vspace and hspace of images to zero was not working.</li>
Index: CKEditor/branches/versions/3.3.x/LICENSE.html
===================================================================
--- CKEditor/branches/versions/3.3.x/LICENSE.html	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/LICENSE.html	(revision 5306)
@@ -1,3 +1,3 @@
-﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
Index: CKEditor/branches/versions/3.3.x/_samples/ajax.html
===================================================================
--- CKEditor/branches/versions/3.3.x/_samples/ajax.html	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_samples/ajax.html	(revision 5306)
@@ -27,20 +27,7 @@
 	var html = document.getElementById( 'editorcontents' ).innerHTML;
 
-	// Create a new editor inside the <div id="editor">
-	editor = CKEDITOR.appendTo( 'editor' );
-	editor.setData( html );
-
-	// This sample may break here if the ckeditor_basic.js is used. In such case, the following code should be used instead:
-	/*
-	if ( editor.setData )
-		editor.setData( html );
-	else
-	{
-		CKEDITOR.on( 'loaded', function()
-			{
-				editor.setData( html );
-			});
-	}
-	*/
+	// Create a new editor inside the <div id="editor">, setting its value to html
+	var config = {};
+	editor = CKEDITOR.appendTo( 'editor', config, html );
 }
 
Index: CKEditor/branches/versions/3.3.x/_samples/assets/output_xhtml.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_samples/assets/output_xhtml.css	(revision 5306)
+++ CKEditor/branches/versions/3.3.x/_samples/assets/output_xhtml.css	(revision 5306)
@@ -0,0 +1,204 @@
+﻿/*
+ * Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ *
+ * Styles used by the XHTML 1.1 sample page (xhtml.html).
+ */
+
+/**
+ * Basic definitions for the editing area.
+ */
+body
+{
+	font-family: Arial, Verdana, sans-serif;
+	font-size: 80%;
+	color: #000000;
+	background-color: #ffffff;
+	padding: 5px;
+	margin: 0px;
+}
+
+/**
+ * Core styles.
+ */
+
+.Bold
+{
+	font-weight: bold;
+}
+
+.Italic
+{
+	font-style: italic;
+}
+
+.Underline
+{
+	text-decoration: underline;
+}
+
+.StrikeThrough
+{
+	text-decoration: line-through;
+}
+
+.Subscript
+{
+	vertical-align: sub;
+	font-size: smaller;
+}
+
+.Superscript
+{
+	vertical-align: super;
+	font-size: smaller;
+}
+
+/**
+ * Font faces.
+ */
+
+.FontComic
+{
+	font-family: 'Comic Sans MS';
+}
+
+.FontCourier
+{
+	font-family: 'Courier New';
+}
+
+.FontTimes
+{
+	font-family: 'Times New Roman';
+}
+
+/**
+ * Font sizes.
+ */
+
+.FontSmaller
+{
+	font-size: smaller;
+}
+
+.FontLarger
+{
+	font-size: larger;
+}
+
+.FontSmall
+{
+	font-size: 8pt;
+}
+
+.FontBig
+{
+	font-size: 14pt;
+}
+
+.FontDouble
+{
+	font-size: 200%;
+}
+
+/**
+ * Font colors.
+ */
+.FontColor1
+{
+	color: #ff9900;
+}
+
+.FontColor2
+{
+	color: #0066cc;
+}
+
+.FontColor3
+{
+	color: #ff0000;
+}
+
+.FontColor1BG
+{
+	background-color: #ff9900;
+}
+
+.FontColor2BG
+{
+	background-color: #0066cc;
+}
+
+.FontColor3BG
+{
+	background-color: #ff0000;
+}
+
+/**
+ * Indentation.
+ */
+
+.Indent1
+{
+	margin-left: 40px;
+}
+
+.Indent2
+{
+	margin-left: 80px;
+}
+
+.Indent3
+{
+	margin-left: 120px;
+}
+
+/**
+ * Alignment.
+ */
+
+.JustifyLeft
+{
+	text-align: left;
+}
+
+.JustifyRight
+{
+	text-align: right;
+}
+
+.JustifyCenter
+{
+	text-align: center;
+}
+
+.JustifyFull
+{
+	text-align: justify;
+}
+
+/**
+ * Other.
+ */
+
+code
+{
+	font-family: courier, monospace;
+	background-color: #eeeeee;
+	padding-left: 1px;
+	padding-right: 1px;
+	border: #c0c0c0 1px solid;
+}
+
+kbd
+{
+	padding: 0px 1px 0px 1px;
+	border-width: 1px 2px 2px 1px;
+	border-style: solid;
+}
+
+blockquote
+{
+	color: #808080;
+}
Index: CKEditor/branches/versions/3.3.x/_samples/index.html
===================================================================
--- CKEditor/branches/versions/3.3.x/_samples/index.html	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_samples/index.html	(revision 5306)
@@ -40,4 +40,5 @@
 		<li><a href="sharedspaces.html">Shared toolbars</a></li>
 		<li><a href="jqueryadapter.html">jQuery adapter example</a></li>
+		<li><a href="output_xhtml.html">Output XHTML</a></li>
 	</ul>
 	<div id="footer">
Index: CKEditor/branches/versions/3.3.x/_samples/output_xhtml.html
===================================================================
--- CKEditor/branches/versions/3.3.x/_samples/output_xhtml.html	(revision 5306)
+++ CKEditor/branches/versions/3.3.x/_samples/output_xhtml.html	(revision 5306)
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>XHTML compliant output - CKEditor Sample</title>
+	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
+	<!-- CKReleaser %REMOVE_LINE%
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	CKReleaser %REMOVE_START% -->
+	<script type="text/javascript" src="../ckeditor_source.js"></script>
+	<!-- CKReleaser %REMOVE_END% -->
+	<script src="sample.js" type="text/javascript"></script>
+	<link href="sample.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
+			<p>
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
+			</p>
+		</noscript>
+	</div>
+	<form action="sample_posteddata.php" method="post">
+		<p>
+			This sample shows CKEditor configured to produce <strong>XHTML 1.1</strong> compliant
+			HTML. Deprecated elements or attributes, like the &lt;font&gt; and &lt;u&gt; elements
+			or the "style" attribute, are avoided.</p>
+		<p>
+			<label for="editor1">
+				Editor 1:</label><br />
+			<textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;span class="Bold"&gt;sample text&lt;/span&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+			<script type="text/javascript">
+			//<![CDATA[
+
+				CKEDITOR.replace( 'editor1',
+					{
+						/*
+						 * Style sheet for the contents
+						 */
+						contentsCss : 'assets/output_xhtml.css',
+
+						/*
+						 * Core styles.
+						 */
+						coreStyles_bold	: { element : 'span', attributes : {'class': 'Bold'} },
+						coreStyles_italic	: { element : 'span', attributes : {'class': 'Italic'}},
+						coreStyles_underline	: { element : 'span', attributes : {'class': 'Underline'}},
+						coreStyles_strike	: { element : 'span', attributes : {'class': 'StrikeThrough'}, overrides : 'strike' },
+
+						coreStyles_subscript : { element : 'span', attributes : {'class': 'Subscript'}, overrides : 'sub' },
+						coreStyles_superscript : { element : 'span', attributes : {'class': 'Superscript'}, overrides : 'sup' },
+
+						/*
+						 * Font face
+						 */
+						// List of fonts available in the toolbar combo. Each font definition is
+						// separated by a semi-colon (;). We are using class names here, so each font
+						// is defined by {Combo Label}/{Class Name}.
+						font_names : 'Comic Sans MS/FontComic;Courier New/FontCourier;Times New Roman/FontTimes',
+
+						// Define the way font elements will be applied to the document. The "span"
+						// element will be used. When a font is selected, the font name defined in the
+						// above list is passed to this definition with the name "Font", being it
+						// injected in the "class" attribute.
+						// We must also instruct the editor to replace span elements that are used to
+						// set the font (Overrides).
+						font_style :
+						{
+								element		: 'span',
+								attributes		: { 'class' : '#(family)' },
+								overrides	: [ { element : 'span', attributes : { 'class' : /^Font(?:Comic|Courier|Times)$/ } } ]
+						},
+
+						/*
+						 * Font sizes.
+						 */
+						fontSize_sizes : 'Smaller/FontSmaller;Larger/FontLarger;8pt/FontSmall;14pt/FontBig;Double Size/FontDouble',
+						fontSize_style :
+							{
+								element		: 'span',
+								attributes	: { 'class' : '#(size)' },
+								overrides	: [ { element : 'span', attributes : { 'class' : /^Font(?:Smaller|Larger|Small|Big|Double)$/ } } ]
+							} ,
+
+						/*
+						 * Font colors.
+						 */
+						colorButton_enableMore : false,
+
+						colorButton_colors : 'FontColor1/FF9900,FontColor2/0066CC,FontColor3/F00',
+						colorButton_foreStyle :
+							{
+								element : 'span',
+								attributes : { 'class' : '#(color)' },
+								overrides	: [ { element : 'span', attributes : { 'class' : /^FontColor(?:1|2|3)$/ } } ]
+							},
+
+						colorButton_backStyle :
+							{
+								element : 'span',
+								attributes : { 'class' : '#(color)BG' },
+								overrides	: [ { element : 'span', attributes : { 'class' : /^FontColor(?:1|2|3)BG$/ } } ]
+							},
+
+						/*
+						 * Indentation.
+						 */
+						indentClasses : ['Indent1', 'Indent2', 'Indent3'],
+
+						/*
+						 * Paragraph justification.
+						 */
+						justifyClasses : [ 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyFull' ],
+
+						/*
+						 * Styles combo.
+						 */
+						stylesSet : 
+								[
+									{ name : 'Strong Emphasis', element : 'strong' },
+									{ name : 'Emphasis', element : 'em' },
+
+									{ name : 'Computer Code', element : 'code' },
+									{ name : 'Keyboard Phrase', element : 'kbd' },
+									{ name : 'Sample Text', element : 'samp' },
+									{ name : 'Variable', element : 'var' },
+
+									{ name : 'Deleted Text', element : 'del' },
+									{ name : 'Inserted Text', element : 'ins' },
+									
+									{ name : 'Cited Work', element : 'cite' },
+									{ name : 'Inline Quotation', element : 'q' }
+								]
+
+					});
+			//]]>
+			</script>
+		</p>
+		<p>
+			<input type="submit" value="Submit" />
+		</p>
+	</form>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico
+			Knabben. All rights reserved.
+		</p>
+	</div>
+</body>
+</html>
Index: CKEditor/branches/versions/3.3.x/_samples/ui_languages.html
===================================================================
--- CKEditor/branches/versions/3.3.x/_samples/ui_languages.html	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_samples/ui_languages.html	(revision 5306)
@@ -34,20 +34,19 @@
 	<form action="sample_posteddata.php" method="post">
 		<p>
-			<label for="editor1">
-				Available languages (<span id="count"> </span>languages!):</label><br />
-				<script type="text/javascript">
-				//<![CDATA[
-					document.write( '<select disabled="disabled" id="languages" onchange="createEditor( this.value );">' );
-					// Get the language list from the _languages.js file.
-					for ( var i = 0 ; i < window.CKEDITOR_LANGS.length ; i++ )
-					{
-						document.write(
-							'<option value="' + window.CKEDITOR_LANGS[i].code + '">' +
-								window.CKEDITOR_LANGS[i].name +
-							'</option>' );
-					}
-					document.write( '</select>' );
-				//]]>
-				</script>
+			Available languages (<span id="count"> </span> languages!):<br />
+			<script type="text/javascript">
+			//<![CDATA[
+				document.write( '<select disabled="disabled" id="languages" onchange="createEditor( this.value );">' );
+				// Get the language list from the _languages.js file.
+				for ( var i = 0 ; i < window.CKEDITOR_LANGS.length ; i++ )
+				{
+					document.write(
+						'<option value="' + window.CKEDITOR_LANGS[i].code + '">' +
+							window.CKEDITOR_LANGS[i].name +
+						'</option>' );
+				}
+				document.write( '</select>' );
+			//]]>
+			</script>
 			<br />
 			<span style="color: #888888">(You may see strange characters if your system doesn't
Index: CKEditor/branches/versions/3.3.x/_source/adapters/jquery.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/adapters/jquery.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/adapters/jquery.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/core/ckeditor_base.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/ckeditor_base.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/ckeditor_base.js	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -137,4 +137,7 @@
 				}
 
+				if( !path )
+						throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.'
+
 				return path;
 			})(),
Index: CKEditor/branches/versions/3.3.x/_source/core/ckeditor_basic.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/ckeditor_basic.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/ckeditor_basic.js	(revision 5306)
@@ -81,5 +81,5 @@
 		CKEDITOR.replaceByClassEnabled = true;
 
-		var createInstance = function( elementOrIdOrName, config, creationFunction )
+		var createInstance = function( elementOrIdOrName, config, creationFunction, data )
 		{
 			if ( CKEDITOR.env.isCompatible )
@@ -89,5 +89,5 @@
 					CKEDITOR.loadFullCore();
 
-				var editor = creationFunction( elementOrIdOrName, config );
+				var editor = creationFunction( elementOrIdOrName, config, data );
 				CKEDITOR.add( editor );
 				return editor;
@@ -127,4 +127,5 @@
 		 *		editor instance. Configurations set here will override global CKEditor
 		 *		settings.
+		 * @param {String} [data] Since 3.3. Initial value for the instance.
 		 * @returns {CKEDITOR.editor} The editor instance created.
 		 * @example
@@ -133,7 +134,7 @@
 		 * <b>CKEDITOR.appendTo( 'editorSpace' )</b>;
 		 */
-		CKEDITOR.appendTo = function( elementOrId, config )
-		{
-			return createInstance( elementOrId, config, CKEDITOR.editor.appendTo );
+		CKEDITOR.appendTo = function( elementOrId, config, data )
+		{
+			return createInstance( elementOrId, config, CKEDITOR.editor.appendTo, data );
 		};
 
Index: CKEditor/branches/versions/3.3.x/_source/core/commanddefinition.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/commanddefinition.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/commanddefinition.js	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -85,2 +85,18 @@
  * });
  */
+
+
+/**
+ * Whether the command state should be set to {@link CKEDITOR.TRISTATE_DISABLED} on startup.
+ * @name  CKEDITOR.commandDefinition.startDisabled
+ * @type {Boolean}
+ * @default false
+ * @example
+ * editorInstance.addCommand( 'unlink',
+ * {
+ *     exec : function( editor )
+ *     {
+ *     },
+ *     startDisabled : true    // Command is unavailable until selection is inside a link. 
+ * });
+ */
Index: CKEditor/branches/versions/3.3.x/_source/core/config.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/config.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/config.js	(revision 5306)
@@ -135,4 +135,16 @@
 
 	/**
+	 * Force the respect of {@link CKEDITOR.config.enterMode} as line break regardless of the context,
+	 * E.g. If {@link CKEDITOR.config.enterMode} is set to {@link CKEDITOR.ENTER_P},
+	 * press enter key inside a 'div' will create a new paragraph with 'p' instead of 'div'.
+	 * @since 3.2.1
+	 * @default false
+	 * @example
+	 * // Not recommended.
+	 * config.forceEnterMode = true;
+	 */
+	forceEnterMode : false,
+
+	/**
 	 * Just like the {@link CKEDITOR.config.enterMode} setting, it defines the behavior for the SHIFT+ENTER key.
 	 * The allowed values are the following constants, and their relative
Index: CKEditor/branches/versions/3.3.x/_source/core/dom/comment.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/dom/comment.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/dom/comment.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/core/dom/domobject.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/dom/domobject.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/dom/domobject.js	(revision 5306)
@@ -116,4 +116,24 @@
 				}
 			}
+		},
+
+		/**
+		 * Removes any listener set on this object.
+		 * To avoid memory leaks we must assure that there are no
+		 * references left after the object is no longer needed.
+		 */
+		removeAllListeners : function()
+		{
+			var nativeListeners = this.getCustomData( '_cke_nativeListeners' );
+			for ( eventName in nativeListeners)
+			{
+				var listener = nativeListeners[ eventName ];
+				if ( this.$.removeEventListener )
+					this.$.removeEventListener( eventName, listener, false );
+				else if ( this.$.detachEvent )
+					this.$.detachEvent( 'on' + eventName, listener );
+
+				delete nativeListeners[ eventName ];
+			}
 		}
 	};
@@ -198,4 +218,20 @@
 
 	/**
+	 * Removes any data stored on this object.
+	 * To avoid memory leaks we must assure that there are no
+	 * references left after the object is no longer needed.
+	 * @name CKEDITOR.dom.domObject.prototype.clearCustomData
+	 * @function
+	 */
+	domObjectProto.clearCustomData = function()
+	{
+		// Clear all event listeners
+		this.removeAllListeners();
+
+		var expandoNumber = this.$._cke_expando;
+		expandoNumber && delete customData[ expandoNumber ];
+	};
+
+	/**
 	 * @name CKEDITOR.dom.domObject.prototype.getCustomData
 	 */
Index: CKEditor/branches/versions/3.3.x/_source/core/dom/element.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/dom/element.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/dom/element.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/core/dom/elementpath.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/dom/elementpath.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/dom/elementpath.js	(revision 5306)
@@ -7,5 +7,5 @@
 {
 	// Elements that may be considered the "Block boundary" in an element path.
-	var pathBlockElements = { address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,de:1 };
+	var pathBlockElements = { address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,dd:1 };
 
 	// Elements that may be considered the "Block limit" in an element path.
Index: CKEditor/branches/versions/3.3.x/_source/core/dom/range.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/dom/range.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/dom/range.js	(revision 5306)
@@ -926,5 +926,5 @@
 										siblingText = sibling.getText();
 
-										if ( !(/[^\s\ufeff]/).test( siblingText ) )	// Spaces + Zero Width No-Break Space (U+FEFF)
+										if ( (/[^\s\ufeff]/).test( siblingText ) )	// Spaces + Zero Width No-Break Space (U+FEFF)
 											sibling = null;
 										else
@@ -1085,5 +1085,5 @@
 										siblingText = sibling.getText();
 
-										if ( !(/[^\s\ufeff]/).test( siblingText ) )
+										if ( (/[^\s\ufeff]/).test( siblingText ) )
 											sibling = null;
 										else
@@ -1237,4 +1237,96 @@
 
 		/**
+		 *  Descrease the range to make sure that boundaries
+		 *  always anchor beside text nodes or innermost element.
+		 * @param {Number} mode  ( CKEDITOR.SHRINK_ELEMENT | CKEDITOR.SHRINK_TEXT ) The shrinking mode.
+		 */
+		shrink : function( mode )
+		{
+			// Unable to shrink a collapsed range.
+			if ( !this.collapsed )
+			{
+				mode = mode || CKEDITOR.SHRINK_TEXT;
+
+				var walkerRange = this.clone();
+
+				var startContainer = this.startContainer,
+					endContainer = this.endContainer,
+					startOffset = this.startOffset,
+					endOffset = this.endOffset,
+					collapsed = this.collapsed;
+
+				// Whether the start/end boundary is moveable.
+				var moveStart = 1,
+						moveEnd = 1;
+
+				if ( startContainer && startContainer.type == CKEDITOR.NODE_TEXT )
+				{
+					if ( !startOffset )
+						walkerRange.setStartBefore( startContainer );
+					else if ( startOffset >= startContainer.getLength( ) )
+						walkerRange.setStartAfter( startContainer );
+					else
+					{
+						// Enlarge the range properly to avoid walker making
+						// DOM changes caused by triming the text nodes later.
+						walkerRange.setStartBefore( startContainer );
+						moveStart = 0;
+					}
+				}
+				
+				if ( endContainer && endContainer.type == CKEDITOR.NODE_TEXT )
+				{
+					if ( !endOffset )
+						walkerRange.setEndBefore( endContainer );
+					else if ( endOffset >= endContainer.getLength( ) )
+						walkerRange.setEndAfter( endContainer );
+					else
+					{
+						walkerRange.setEndAfter( endContainer );
+						moveEnd = 0;
+					}
+				}
+
+				var walker = new CKEDITOR.dom.walker( walkerRange );
+
+				walker.evaluator = function( node )
+				{
+					return node.type == ( mode == CKEDITOR.SHRINK_ELEMENT ?
+						CKEDITOR.NODE_ELEMENT : CKEDITOR.NODE_TEXT );
+				};
+
+				var currentElement;
+				walker.guard = function( node, movingOut )
+				{
+					// Stop when we're shrink in element mode while encountering a text node.
+					if ( mode == CKEDITOR.SHRINK_ELEMENT && node.type == CKEDITOR.NODE_TEXT )
+						return false;
+
+					// Stop when we've already walked "through" an element.
+					if ( movingOut && node.equals( currentElement ) )
+						return false;
+
+					if ( !movingOut && node.type == CKEDITOR.NODE_ELEMENT )
+						currentElement = node;
+				};
+
+				if ( moveStart )
+				{
+					var textStart = walker[ mode == CKEDITOR.SHRINK_ELEMENT ? 'lastForward' : 'next']();
+					textStart && this.setStartBefore( textStart );
+				}
+
+				if ( moveEnd )
+				{
+					walker.reset();
+					var textEnd = walker[ mode == CKEDITOR.SHRINK_ELEMENT ? 'lastBackward' : 'previous']();
+					textEnd && this.setEndAfter( textEnd );
+				}
+
+				return !!( moveStart || moveEnd );
+			}
+		},
+
+		/**
 		 * Inserts a node at the start of the range. The range will be expanded
 		 * the contain the node.
@@ -1624,4 +1716,8 @@
 			var isEditable;
 
+			// Empty elements are rejected.
+			if ( CKEDITOR.dtd.$empty[ el.getName() ] )
+				return false;
+
 			while ( el && el.type == CKEDITOR.NODE_ELEMENT )
 			{
@@ -1734,2 +1830,6 @@
 CKEDITOR.END = 2;
 CKEDITOR.STARTEND = 3;
+
+CKEDITOR.SHRINK_ELEMENT = 1;
+CKEDITOR.SHRINK_TEXT = 2;
+
Index: CKEditor/branches/versions/3.3.x/_source/core/dom/walker.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/dom/walker.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/dom/walker.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -102,5 +102,5 @@
 				}
 				else
-					node = ( guard ( node ) === false ) ?
+					node = ( guard ( node, true ) === false ) ?
 						null : node.getPreviousSourceNode( true, type, guard );
 			}
@@ -116,5 +116,5 @@
 				}
 				else
-					node = ( guard ( range.startContainer ) === false ) ?
+					node = ( guard ( range.startContainer, true ) === false ) ?
 						null : range.startContainer.getNextSourceNode( true, type, guard ) ;
 			}
Index: CKEditor/branches/versions/3.3.x/_source/core/editor.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/editor.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/editor.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -335,5 +335,5 @@
 		{
 			command = commands[ name ];
-			command[ command.modes[ mode ] ? 'enable' : 'disable' ]();
+			command[ command.startDisabled ? 'disable' : command.modes[ mode ] ? 'enable' : 'disable' ]();
 		}
 	}
@@ -472,5 +472,48 @@
 				this.updateElement();
 
+			if ( this.mode )
+			{
+				// ->		currentMode.unload( holderElement );
+				this._.modes[ this.mode ].unload( this.getThemeSpace( 'contents' ) );
+			}
+
 			this.theme.destroy( this );
+
+			var toolbars,
+				index = 0,
+				j,
+				items,
+				instance;
+
+			if ( this.toolbox )
+			{
+				toolbars = this.toolbox.toolbars;
+				for ( ; index < toolbars.length ; index++ )
+				{
+					items = toolbars[ index ].items;
+					for ( j = 0 ; j < items.length ; j++ )
+					{
+						instance = items[ j ];
+						if ( instance.clickFn ) CKEDITOR.tools.removeFunction( instance.clickFn );
+						if ( instance.keyDownFn ) CKEDITOR.tools.removeFunction( instance.keyDownFn );
+
+						if ( instance.index ) CKEDITOR.ui.button._.instances[ instance.index ] = null;
+					}
+				}
+			}
+
+			if ( this.contextMenu )
+				CKEDITOR.tools.removeFunction( this.contextMenu._.functionId );
+
+			if ( this._.filebrowserFn )
+				CKEDITOR.tools.removeFunction( this._.filebrowserFn );
+
+			items = editor.config.elementsPath_filters;
+			if ( items )
+			{
+				for ( index= 0 ; index < items.length ; index++ )
+					items[ index ] = null;
+			}
+
 			this.fire( 'destroy' );
 			CKEDITOR.remove( this );
Index: CKEditor/branches/versions/3.3.x/_source/core/editor_basic.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/editor_basic.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/editor_basic.js	(revision 5306)
@@ -37,8 +37,9 @@
 	 * @param {Number} [mode] The mode in which the element is linked to this
 	 *		instance.
+	 * @param {String} [data] Since 3.3. Initial value for the instance.
 	 * @augments CKEDITOR.event
 	 * @example
 	 */
-	CKEDITOR.editor = function( instanceConfig, element, mode )
+	CKEDITOR.editor = function( instanceConfig, element, mode, data )
 	{
 		this._ =
@@ -46,5 +47,6 @@
 			// Save the config to be processed later by the full core code.
 			instanceConfig : instanceConfig,
-			element : element
+			element : element,
+			data : data
 		};
 
@@ -127,8 +129,9 @@
 	 *		editor instance. Configurations set here will override global CKEditor
 	 *		settings.
+	 * @param {String} [data] Since 3.3. Initial value for the instance.
 	 * @returns {CKEDITOR.editor} The editor instance created.
 	 * @example
 	 */
-	CKEDITOR.editor.appendTo = function( elementOrId, config )
+	CKEDITOR.editor.appendTo = function( elementOrId, config, data )
 	{
 		var element = elementOrId;
@@ -142,5 +145,5 @@
 
 		// Create the editor instance.
-		return new CKEDITOR.editor( config, element, CKEDITOR.ELEMENT_MODE_APPENDTO );
+		return new CKEDITOR.editor( config, element, CKEDITOR.ELEMENT_MODE_APPENDTO, data );
 	};
 
Index: CKEditor/branches/versions/3.3.x/_source/core/htmlparser/basicwriter.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/htmlparser/basicwriter.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/htmlparser/basicwriter.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -61,7 +61,7 @@
 		attribute : function( attName, attValue )
 		{
-			// Browsers don't always escape quote in attribute values. (#4683)
+			// Browsers don't always escape special character in attribute values. (#4683, #4719).
 			if ( typeof attValue == 'string' )
-				attValue = attValue.replace( /"/g, '&quot;' );
+				attValue = CKEDITOR.tools.htmlEncodeAttr( attValue ); 
 
 			this._.output.push( ' ', attName, '="', attValue, '"' );
Index: CKEditor/branches/versions/3.3.x/_source/core/htmlparser/cdata.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/htmlparser/cdata.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/htmlparser/cdata.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/core/htmlparser/comment.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/htmlparser/comment.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/htmlparser/comment.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/core/htmlparser/element.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/htmlparser/element.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/htmlparser/element.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/core/htmlparser/filter.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/htmlparser/filter.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/htmlparser/filter.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/core/htmlparser/fragment.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/htmlparser/fragment.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/htmlparser/fragment.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -275,4 +275,5 @@
 
 			checkPending( tagName );
+			sendPendingBRs();
 
 			element.parent = currentNode;
Index: CKEditor/branches/versions/3.3.x/_source/core/imagecacher.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/imagecacher.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/imagecacher.js	(revision 5306)
@@ -12,4 +12,5 @@
 		var doCallback = function()
 			{
+				img.removeAllListeners();
 				loaded[ image ] = 1;
 				callback();
Index: CKEditor/branches/versions/3.3.x/_source/core/plugins.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/plugins.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/plugins.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/core/resourcemanager.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/resourcemanager.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/resourcemanager.js	(revision 5306)
@@ -128,5 +128,5 @@
 		return CKEDITOR.getUrl(
 				this.getPath( name ) +
-				( ( external && external.file !== null ) ? external.file : this.fileName + '.js' ) );
+				( ( external && ( typeof external.file == 'string' ) ) ? external.file : this.fileName + '.js' ) );
 	},
 
Index: CKEditor/branches/versions/3.3.x/_source/core/scriptloader.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/scriptloader.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/scriptloader.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/core/skins.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/skins.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/skins.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/core/tools.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/core/tools.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/core/tools.js	(revision 5306)
@@ -324,4 +324,17 @@
 
 		/**
+		 * Replace special HTML characters in HTMLElement's attribute with their relative HTML entity values.
+		 * @param {String} The attribute's value to be encoded.
+		 * @returns {String} The encode value.
+		 * @example
+		 * element.setAttribute( 'title', '<a " b >' );
+		 * alert( CKEDITOR.tools.htmlEncodeAttr( element.getAttribute( 'title' ) );  // "&gt;a &quot; b &lt;"
+		 */
+		htmlEncodeAttr : function( text ) 
+		{
+			return text.replace( /"/g, '&quot;' ).replace( /</g, '&lt;' ).replace( />/, '&gt;' );
+		},
+		
+		/**
 		 * Replace characters can't be represented through CSS Selectors string
 		 * by CSS Escape Notation where the character escape sequence consists
@@ -541,5 +554,5 @@
 		 * <li> Chainable base class constructor </li>
 		 * </ul>
-		 * @param {Object} definiton The class definiton object.
+		 * @param {Object} definition The class definition object.
 		 * @returns {Function} A class-like JavaScript function.
 		 */
Index: CKEditor/branches/versions/3.3.x/_source/lang/_translationstatus.txt
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/_translationstatus.txt	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/_translationstatus.txt	(revision 5306)
@@ -2,59 +2,59 @@
 For licensing, see LICENSE.html or http://ckeditor.com/license
 
-af.js      Found: 286 Missing: 203
-ar.js      Found: 450 Missing: 39
-bg.js      Found: 279 Missing: 210
-bn.js      Found: 281 Missing: 208
-bs.js      Found: 187 Missing: 302
-ca.js      Found: 403 Missing: 86
-cs.js      Found: 410 Missing: 79
-cy.js      Found: 451 Missing: 38
-da.js      Found: 403 Missing: 86
-de.js      Found: 443 Missing: 46
-el.js      Found: 285 Missing: 204
-en-au.js   Found: 368 Missing: 121
-en-ca.js   Found: 368 Missing: 121
-en-gb.js   Found: 369 Missing: 120
-eo.js      Found: 259 Missing: 230
-es.js      Found: 466 Missing: 23
-et.js      Found: 300 Missing: 189
-eu.js      Found: 403 Missing: 86
-fa.js      Found: 301 Missing: 188
-fi.js      Found: 466 Missing: 23
-fo.js      Found: 300 Missing: 189
-fr-ca.js   Found: 301 Missing: 188
-fr.js      Found: 402 Missing: 87
-gl.js      Found: 282 Missing: 207
-gu.js      Found: 300 Missing: 189
-he.js      Found: 466 Missing: 23
-hi.js      Found: 301 Missing: 188
-hr.js      Found: 403 Missing: 86
-hu.js      Found: 300 Missing: 189
-is.js      Found: 306 Missing: 183
-it.js      Found: 403 Missing: 86
-ja.js      Found: 412 Missing: 77
-km.js      Found: 275 Missing: 214
-ko.js      Found: 292 Missing: 197
-lt.js      Found: 305 Missing: 184
-lv.js      Found: 282 Missing: 207
-mn.js      Found: 300 Missing: 189
-ms.js      Found: 264 Missing: 225
-nb.js      Found: 409 Missing: 80
-nl.js      Found: 466 Missing: 23
-no.js      Found: 409 Missing: 80
-pl.js      Found: 410 Missing: 79
-pt-br.js   Found: 402 Missing: 87
-pt.js      Found: 281 Missing: 208
-ro.js      Found: 300 Missing: 189
-ru.js      Found: 466 Missing: 23
-sk.js      Found: 301 Missing: 188
-sl.js      Found: 409 Missing: 80
-sr-latn.js Found: 275 Missing: 214
-sr.js      Found: 275 Missing: 214
-sv.js      Found: 298 Missing: 191
-th.js      Found: 286 Missing: 203
-tr.js      Found: 306 Missing: 183
-uk.js      Found: 403 Missing: 86
-vi.js      Found: 403 Missing: 86
-zh-cn.js   Found: 403 Missing: 86
-zh.js      Found: 403 Missing: 86
+af.js      Found: 287 Missing: 207
+ar.js      Found: 451 Missing: 43
+bg.js      Found: 280 Missing: 214
+bn.js      Found: 281 Missing: 213
+bs.js      Found: 187 Missing: 307
+ca.js      Found: 404 Missing: 90
+cs.js      Found: 411 Missing: 83
+cy.js      Found: 452 Missing: 42
+da.js      Found: 404 Missing: 90
+de.js      Found: 444 Missing: 50
+el.js      Found: 286 Missing: 208
+en-au.js   Found: 369 Missing: 125
+en-ca.js   Found: 369 Missing: 125
+en-gb.js   Found: 370 Missing: 124
+eo.js      Found: 259 Missing: 235
+es.js      Found: 467 Missing: 27
+et.js      Found: 301 Missing: 193
+eu.js      Found: 403 Missing: 91
+fa.js      Found: 302 Missing: 192
+fi.js      Found: 467 Missing: 27
+fo.js      Found: 420 Missing: 74
+fr-ca.js   Found: 301 Missing: 193
+fr.js      Found: 403 Missing: 91
+gl.js      Found: 283 Missing: 211
+gu.js      Found: 300 Missing: 194
+he.js      Found: 467 Missing: 27
+hi.js      Found: 302 Missing: 192
+hr.js      Found: 404 Missing: 90
+hu.js      Found: 301 Missing: 193
+is.js      Found: 307 Missing: 187
+it.js      Found: 404 Missing: 90
+ja.js      Found: 413 Missing: 81
+km.js      Found: 275 Missing: 219
+ko.js      Found: 293 Missing: 201
+lt.js      Found: 306 Missing: 188
+lv.js      Found: 283 Missing: 211
+mn.js      Found: 300 Missing: 194
+ms.js      Found: 265 Missing: 229
+nb.js      Found: 410 Missing: 84
+nl.js      Found: 467 Missing: 27
+no.js      Found: 410 Missing: 84
+pl.js      Found: 411 Missing: 83
+pt-br.js   Found: 402 Missing: 92
+pt.js      Found: 282 Missing: 212
+ro.js      Found: 301 Missing: 193
+ru.js      Found: 467 Missing: 27
+sk.js      Found: 302 Missing: 192
+sl.js      Found: 410 Missing: 84
+sr-latn.js Found: 276 Missing: 218
+sr.js      Found: 275 Missing: 219
+sv.js      Found: 299 Missing: 195
+th.js      Found: 287 Missing: 207
+tr.js      Found: 307 Missing: 187
+uk.js      Found: 404 Missing: 90
+vi.js      Found: 404 Missing: 90
+zh-cn.js   Found: 404 Missing: 90
+zh.js      Found: 404 Missing: 90
Index: CKEditor/branches/versions/3.3.x/_source/lang/af.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/af.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/af.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Spesiaale Karakter byvoeg',
-		title		: 'Kies spesiale karakter'
+		title		: 'Kies spesiale karakter',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Skakel byvoeg/verander',
+		other 		: '<ander>',
 		menu		: 'Verander skakel',
 		title		: 'Skakel',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smiley',
-		title	: 'Voeg Smiley by'
+		title	: 'Voeg Smiley by',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Byvoeg',
-		cutError	: 'U browser se sekuriteit instelling behinder die uitsny aksie. Gebruik asseblief die sleutel kombenasie(Ctrl+X).',
-		copyError	: 'U browser se sekuriteit instelling behinder die kopieerings aksie. Gebruik asseblief die sleutel kombenasie(Ctrl+C).',
-		pasteMsg	: 'Voeg asseblief die inhoud in die gegewe box by met sleutel kombenasie(<STRONG>Ctrl+V</STRONG>) en druk <STRONG>OK</STRONG>.',
+		cutError	: 'U browser se sekuriteit instelling behinder die uitsny aksie. Gebruik asseblief die sleutel kombenasie(Ctrl/Cmd+X).',
+		copyError	: 'U browser se sekuriteit instelling behinder die kopieerings aksie. Gebruik asseblief die sleutel kombenasie(Ctrl/Cmd+C).',
+		pasteMsg	: 'Voeg asseblief die inhoud in die gegewe box by met sleutel kombenasie(<STRONG>Ctrl/Cmd+V</STRONG>) en druk <STRONG>OK</STRONG>.',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Templates',
 		title			: 'Inhoud Templates',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Vervang bestaande inhoud',
 		selectPromptMsg	: 'Kies die template om te gebruik in die editor<br>(Inhoud word vervang!):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/ar.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/ar.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/ar.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'إدراج  خاص.ِ',
-		title		: 'اختر الخواص'
+		title		: 'اختر الخواص',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'رابط',
+		other 		: '<أخرى>',
 		menu		: 'تحرير رابط',
 		title		: 'إرتباط تشعبي',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'ابتسامات',
-		title	: 'إدراج ابتسامات'
+		title	: 'إدراج ابتسامات',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : 'عنصر 1%'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'لصق',
-		cutError	: 'الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl+X).',
-		copyError	: 'الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl+C).',
-		pasteMsg	: 'الصق داخل الصندوق بإستخدام زرائر (<STRONG>Ctrl+V</STRONG>) في لوحة المفاتيح، ثم اضغط زر  <STRONG>موافق</STRONG>.',
+		cutError	: 'الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+X).',
+		copyError	: 'الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+C).',
+		pasteMsg	: 'الصق داخل الصندوق بإستخدام زرائر (<STRONG>Ctrl/Cmd+V</STRONG>) في لوحة المفاتيح، ثم اضغط زر  <STRONG>موافق</STRONG>.',
 		securityMsg	: 'نظراً لإعدادات الأمان الخاصة بمتصفحك، لن يتمكن هذا المحرر من الوصول لمحتوى حافظتك، لذلك يجب عليك لصق المحتوى مرة أخرى في هذه النافذة.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'القوالب',
 		title			: 'قوالب المحتوى',
+		options : 'Template Options', // MISSING
 		insertOption	: 'استبدال المحتوى',
 		selectPromptMsg	: 'اختر القالب الذي تود وضعه في المحرر',
Index: CKEditor/branches/versions/3.3.x/_source/lang/bg.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/bg.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/bg.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Вмъкни специален символ',
-		title		: 'Изберете специален символ'
+		title		: 'Изберете специален символ',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Добави/Редактирай връзка',
+		other 		: '<друг>',
 		menu		: 'Редактирай връзка',
 		title		: 'Връзка',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Усмивка',
-		title	: 'Добави усмивка'
+		title	: 'Добави усмивка',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Вмъкни',
-		cutError	: 'Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни изрязването. За целта използвайте клавиатурата (Ctrl+X).',
-		copyError	: 'Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни запаметяването. За целта използвайте клавиатурата (Ctrl+C).',
-		pasteMsg	: 'Вмъкнете тук съдъжанието с клавиатуарата (<STRONG>Ctrl+V</STRONG>) и натиснете <STRONG>OK</STRONG>.',
+		cutError	: 'Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни изрязването. За целта използвайте клавиатурата (Ctrl/Cmd+X).',
+		copyError	: 'Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни запаметяването. За целта използвайте клавиатурата (Ctrl/Cmd+C).',
+		pasteMsg	: 'Вмъкнете тук съдъжанието с клавиатуарата (<STRONG>Ctrl/Cmd+V</STRONG>) и натиснете <STRONG>OK</STRONG>.',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Шаблони',
 		title			: 'Шаблони',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Replace actual contents', // MISSING
 		selectPromptMsg	: 'Изберете шаблон <br>(текущото съдържание на редактора ще бъде загубено):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/bn.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/bn.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/bn.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'বিশেষ অক্ষর যুক্ত কর',
-		title		: 'বিশেষ ক্যারেক্টার বাছাই কর'
+		title		: 'বিশেষ ক্যারেক্টার বাছাই কর',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'লিংক যুক্ত কর',
+		other 		: '<other>', // MISSING
 		menu		: 'লিংক সম্পাদন',
 		title		: 'লিংক',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'স্মাইলী',
-		title	: 'স্মাইলী যুক্ত কর'
+		title	: 'স্মাইলী যুক্ত কর',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'পেস্ট',
-		cutError	: 'আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কাট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl+X)।',
-		copyError	: 'আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কপি করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl+C)।',
-		pasteMsg	: 'অনুগ্রহ করে নীচের বাক্সে কিবোর্ড ব্যবহার করে (<STRONG>Ctrl+V</STRONG>) পেস্ট করুন এবং <STRONG>OK</STRONG> চাপ দিন',
+		cutError	: 'আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কাট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+X)।',
+		copyError	: 'আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কপি করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+C)।',
+		pasteMsg	: 'অনুগ্রহ করে নীচের বাক্সে কিবোর্ড ব্যবহার করে (<STRONG>Ctrl/Cmd+V</STRONG>) পেস্ট করুন এবং <STRONG>OK</STRONG> চাপ দিন',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'টেমপ্লেট',
 		title			: 'কনটেন্ট টেমপ্লেট',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Replace actual contents', // MISSING
 		selectPromptMsg	: 'অনুগ্রহ করে এডিটরে ওপেন করার জন্য টেমপ্লেট বাছাই করুন<br>(আসল কনটেন্ট হারিয়ে যাবে):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/bs.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/bs.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/bs.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Ubaci specijalni karater',
-		title		: 'Izaberi specijalni karakter'
+		title		: 'Izaberi specijalni karakter',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Ubaci/Izmjeni link',
+		other 		: '<other>', // MISSING
 		menu		: 'Izmjeni link',
 		title		: 'Link',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smješko',
-		title	: 'Ubaci smješka'
+		title	: 'Ubaci smješka',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Zalijepi',
-		cutError	: 'Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl+X).',
-		copyError	: 'Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl+C).',
-		pasteMsg	: 'Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit OK', // MISSING
+		cutError	: 'Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+X).',
+		copyError	: 'Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+C).',
+		pasteMsg	: 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK', // MISSING
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Templates', // MISSING
 		title			: 'Content Templates', // MISSING
+		options : 'Template Options', // MISSING
 		insertOption	: 'Replace actual contents', // MISSING
 		selectPromptMsg	: 'Please select the template to open in the editor', // MISSING
Index: CKEditor/branches/versions/3.3.x/_source/lang/ca.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/ca.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/ca.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Insereix caràcter especial',
-		title		: 'Selecciona el caràcter especial'
+		title		: 'Selecciona el caràcter especial',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Insereix/Edita enllaç',
+		other 		: '<altre>',
 		menu		: 'Edita l\'enllaç',
 		title		: 'Enllaç',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Icona',
-		title	: 'Insereix una icona'
+		title	: 'Insereix una icona',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Enganxa',
-		cutError	: 'La seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl+X).',
-		copyError	: 'La seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl+C).',
-		pasteMsg	: 'Si us plau, enganxeu dins del següent camp utilitzant el teclat (<STRONG>Ctrl+V</STRONG>) i premeu <STRONG>OK</STRONG>.',
+		cutError	: 'La seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+X).',
+		copyError	: 'La seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+C).',
+		pasteMsg	: 'Si us plau, enganxeu dins del següent camp utilitzant el teclat (<STRONG>Ctrl/Cmd+V</STRONG>) i premeu <STRONG>OK</STRONG>.',
 		securityMsg	: 'A causa de la configuració de seguretat del vostre navegador, l\'editor no pot accedir al porta-retalls directament. Enganxeu-ho un altre cop en aquesta finestra.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Plantilles',
 		title			: 'Contingut plantilles',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Reemplaça el contingut actual',
 		selectPromptMsg	: 'Si us plau, seleccioneu la plantilla per obrir a l\'editor<br>(el contingut actual no serà enregistrat):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/cs.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/cs.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/cs.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Vložit speciální znaky',
-		title		: 'Výběr speciálního znaku'
+		title		: 'Výběr speciálního znaku',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Vložit/změnit odkaz',
+		other 		: '<jiný>',
 		menu		: 'Změnit odkaz',
 		title		: 'Odkaz',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smajlíky',
-		title	: 'Vkládání smajlíků'
+		title	: 'Vkládání smajlíků',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 objekt'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Vložit',
-		cutError	: 'Bezpečnostní nastavení Vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl+X).',
-		copyError	: 'Bezpečnostní nastavení Vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl+C).',
-		pasteMsg	: 'Do následujícího pole vložte požadovaný obsah pomocí klávesnice (<STRONG>Ctrl+V</STRONG>) a stiskněte <STRONG>OK</STRONG>.',
+		cutError	: 'Bezpečnostní nastavení Vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+X).',
+		copyError	: 'Bezpečnostní nastavení Vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+C).',
+		pasteMsg	: 'Do následujícího pole vložte požadovaný obsah pomocí klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) a stiskněte <STRONG>OK</STRONG>.',
 		securityMsg	: 'Z důvodů nastavení bezpečnosti Vašeho prohlížeče nemůže editor přistupovat přímo do schránky. Obsah schránky prosím vložte znovu do tohoto okna.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Šablony',
 		title			: 'Šablony obsahu',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Nahradit aktuální obsah',
 		selectPromptMsg	: 'Prosím zvolte šablonu pro otevření v editoru<br>(aktuální obsah editoru bude ztracen):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/cy.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/cy.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/cy.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Mewnosod Nodau Arbennig',
-		title		: 'Dewis Nod Arbennig'
+		title		: 'Dewis Nod Arbennig',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Dolen',
+		other 		: '<eraill>',
 		menu		: 'Golygu Dolen',
 		title		: 'Dolen',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Gwenoglun',
-		title	: 'Mewnosod Gwenoglun'
+		title	: 'Mewnosod Gwenoglun',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : 'Elfen %1'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Gludo',
-		cutError	: 'Nid yw gosodiadau diogelwch eich porwr yn caniatàu\'r golygydd i gynnal \'gweithredoedd torri\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl+X).',
-		copyError	: 'Nid yw gosodiadau diogelwch eich porwr yn caniatàu\'r golygydd i gynnal \'gweithredoedd copïo\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl+C).',
-		pasteMsg	: 'Gludwch i mewn i\'r blwch canlynol gan ddefnyddio\'r bysellfwrdd (<strong>Ctrl+V</strong>) a phwyso <strong>Iawn</strong>.',
+		cutError	: 'Nid yw gosodiadau diogelwch eich porwr yn caniatàu\'r golygydd i gynnal \'gweithredoedd torri\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+X).',
+		copyError	: 'Nid yw gosodiadau diogelwch eich porwr yn caniatàu\'r golygydd i gynnal \'gweithredoedd copïo\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+C).',
+		pasteMsg	: 'Gludwch i mewn i\'r blwch canlynol gan ddefnyddio\'r bysellfwrdd (<strong>Ctrl/Cmd+V</strong>) a phwyso <strong>Iawn</strong>.',
 		securityMsg	: 'Oherwydd gosodiadau diogelwch eich porwr, nid yw\'r porwr yn gallu ennill mynediad i\'r data ar y clipfwrdd yn uniongyrchol. Mae angen i chi ei ludo eto i\'r ffenestr hon.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Templedi',
 		title			: 'Templedi Cynnwys',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Amnewid y cynnwys go iawn',
 		selectPromptMsg	: 'Dewiswch dempled i\'w agor yn y golygydd',
Index: CKEditor/branches/versions/3.3.x/_source/lang/da.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/da.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/da.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Indsæt symbol',
-		title		: 'Vælg symbol'
+		title		: 'Vælg symbol',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Indsæt/redigér hyperlink',
+		other 		: '<anden>',
 		menu		: 'Redigér hyperlink',
 		title		: 'Egenskaber for hyperlink',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smiley',
-		title	: 'Vælg smiley'
+		title	: 'Vælg smiley',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Indsæt',
-		cutError	: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at klippe teksten (Ctrl+X).',
-		copyError	: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at kopiere teksten (Ctrl+C).',
-		pasteMsg	: 'Indsæt i feltet herunder (<STRONG>Ctrl+V</STRONG>) og klik på <STRONG>OK</STRONG>.',
+		cutError	: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).',
+		copyError	: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).',
+		pasteMsg	: 'Indsæt i feltet herunder (<STRONG>Ctrl/Cmd+V</STRONG>) og klik på <STRONG>OK</STRONG>.',
 		securityMsg	: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Du skal indsætte udklipsholderens indhold i dette vindue igen.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Skabeloner',
 		title			: 'Indholdsskabeloner',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Erstat det faktiske indhold',
 		selectPromptMsg	: 'Vælg den skabelon, som skal åbnes i editoren (nuværende indhold vil blive overskrevet):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/de.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/de.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/de.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Sonderzeichen einfügen/editieren',
-		title		: 'Sonderzeichen auswählen'
+		title		: 'Sonderzeichen auswählen',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Link einfügen/editieren',
+		other 		: '<andere>',
 		menu		: 'Link editieren',
 		title		: 'Link',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smiley',
-		title	: 'Smiley auswählen'
+		title	: 'Smiley auswählen',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 Element'
 	},
@@ -529,4 +537,5 @@
 		button			: 'Vorlagen',
 		title			: 'Vorlagen',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Aktuellen Inhalt ersetzen',
 		selectPromptMsg	: 'Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/el.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/el.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/el.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Εισαγωγή Ειδικού Συμβόλου',
-		title		: 'Επιλέξτε ένα Ειδικό Σύμβολο'
+		title		: 'Επιλέξτε ένα Ειδικό Σύμβολο',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Εισαγωγή/Μεταβολή Συνδέσμου (Link)',
+		other 		: '<άλλος>',
 		menu		: 'Μεταβολή Συνδέσμου (Link)',
 		title		: 'Σύνδεσμος (Link)',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smiley',
-		title	: 'Επιλέξτε ένα Smiley'
+		title	: 'Επιλέξτε ένα Smiley',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Επικόλληση',
-		cutError	: 'Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl+X).',
-		copyError	: 'Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl+C).',
-		pasteMsg	: 'Παρακαλώ επικολήστε στο ακόλουθο κουτί χρησιμοποιόντας το πληκτρολόγιο (<STRONG>Ctrl+V</STRONG>) και πατήστε <STRONG>OK</STRONG>.',
+		cutError	: 'Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+X).',
+		copyError	: 'Οι ρυθμίσεις ασφαλείας του φυλλομετρητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+C).',
+		pasteMsg	: 'Παρακαλώ επικολήστε στο ακόλουθο κουτί χρησιμοποιόντας το πληκτρολόγιο (<STRONG>Ctrl/Cmd+V</STRONG>) και πατήστε <STRONG>OK</STRONG>.',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Πρότυπα',
 		title			: 'Πρότυπα περιεχομένου',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Αντικατάσταση υπάρχοντων περιεχομένων',
 		selectPromptMsg	: 'Παρακαλώ επιλέξτε πρότυπο για εισαγωγή στο πρόγραμμα<br>(τα υπάρχοντα περιεχόμενα θα χαθούν):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/en-au.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/en-au.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/en-au.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Insert Special Character',
-		title		: 'Select Special Character'
+		title		: 'Select Special Character',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Link',
+		other 		: '<other>',
 		menu		: 'Edit Link',
 		title		: 'Link',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smiley',
-		title	: 'Insert a Smiley'
+		title	: 'Insert a Smiley',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Paste',
-		cutError	: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).',
-		copyError	: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).',
-		pasteMsg	: 'Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit OK',
+		cutError	: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',
+		copyError	: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',
+		pasteMsg	: 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Templates',
 		title			: 'Content Templates',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Replace actual contents',
 		selectPromptMsg	: 'Please select the template to open in the editor',
Index: CKEditor/branches/versions/3.3.x/_source/lang/en-ca.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/en-ca.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/en-ca.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Insert Special Character',
-		title		: 'Select Special Character'
+		title		: 'Select Special Character',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Link',
+		other 		: '<other>',
 		menu		: 'Edit Link',
 		title		: 'Link',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smiley',
-		title	: 'Insert a Smiley'
+		title	: 'Insert a Smiley',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Paste',
-		cutError	: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).',
-		copyError	: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).',
-		pasteMsg	: 'Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit OK',
+		cutError	: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',
+		copyError	: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',
+		pasteMsg	: 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Templates',
 		title			: 'Content Templates',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Replace actual contents',
 		selectPromptMsg	: 'Please select the template to open in the editor',
Index: CKEditor/branches/versions/3.3.x/_source/lang/en-gb.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/en-gb.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/en-gb.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Insert Special Character',
-		title		: 'Select Special Character'
+		title		: 'Select Special Character',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Link',
+		other 		: '<other>',
 		menu		: 'Edit Link',
 		title		: 'Link',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smiley',
-		title	: 'Insert a Smiley'
+		title	: 'Insert a Smiley',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Paste',
-		cutError	: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).',
-		copyError	: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).',
-		pasteMsg	: 'Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit OK',
+		cutError	: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',
+		copyError	: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',
+		pasteMsg	: 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',
 		pasteArea	: 'Paste Area'
@@ -529,4 +537,5 @@
 		button			: 'Templates',
 		title			: 'Content Templates',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Replace actual contents',
 		selectPromptMsg	: 'Please select the template to open in the editor',
Index: CKEditor/branches/versions/3.3.x/_source/lang/en.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/en.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/en.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options'
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Insert Special Character',
-		title		: 'Select Special Character'
+		title		: 'Select Special Character',
+		options : 'Special Character Options'
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Link',
+		other 		: '<other>',
 		menu		: 'Edit Link',
 		title		: 'Link',
@@ -477,5 +484,6 @@
 	{
 		toolbar	: 'Smiley',
-		title	: 'Insert a Smiley'
+		title	: 'Insert a Smiley',
+		options : 'Smiley Options'
 	},
 
@@ -504,7 +512,7 @@
 	{
 		title		: 'Paste',
-		cutError	: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl+X).',
-		copyError	: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).',
-		pasteMsg	: 'Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit OK',
+		cutError	: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',
+		copyError	: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',
+		pasteMsg	: 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',
 		pasteArea	: 'Paste Area'
@@ -529,4 +537,5 @@
 		button			: 'Templates',
 		title			: 'Content Templates',
+		options : 'Template Options',
 		insertOption	: 'Replace actual contents',
 		selectPromptMsg	: 'Please select the template to open in the editor',
Index: CKEditor/branches/versions/3.3.x/_source/lang/eo.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/eo.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/eo.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Enmeti Specialan Signon',
-		title		: 'Enmeti Specialan Signon'
+		title		: 'Enmeti Specialan Signon',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Enmeti/Ŝanĝi Ligilon',
+		other 		: '<other>', // MISSING
 		menu		: 'Modifier Ligilon',
 		title		: 'Ligilo',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Mienvinjeto',
-		title	: 'Enmeti Mienvinjeton'
+		title	: 'Enmeti Mienvinjeton',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Interglui',
-		cutError	: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-X).',
-		copyError	: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-C).',
-		pasteMsg	: 'Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit OK', // MISSING
+		cutError	: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-X).',
+		copyError	: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-C).',
+		pasteMsg	: 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK', // MISSING
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Templates', // MISSING
 		title			: 'Content Templates', // MISSING
+		options : 'Template Options', // MISSING
 		insertOption	: 'Replace actual contents', // MISSING
 		selectPromptMsg	: 'Please select the template to open in the editor', // MISSING
Index: CKEditor/branches/versions/3.3.x/_source/lang/es.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/es.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/es.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Insertar Caracter Especial',
-		title		: 'Seleccione un caracter especial'
+		title		: 'Seleccione un caracter especial',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Insertar/Editar Vínculo',
+		other 		: '<otro>',
 		menu		: 'Editar Vínculo',
 		title		: 'Vínculo',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Emoticons',
-		title	: 'Insertar un Emoticon'
+		title	: 'Insertar un Emoticon',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 elemento'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Pegar',
-		cutError	: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl+X).',
-		copyError	: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl+C).',
-		pasteMsg	: 'Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl+V</STRONG>);\r\nluego presione <STRONG>Aceptar</STRONG>.',
+		cutError	: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl/Cmd+X).',
+		copyError	: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl/Cmd+C).',
+		pasteMsg	: 'Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl/Cmd+V</STRONG>);\r\nluego presione <STRONG>Aceptar</STRONG>.',
 		securityMsg	: 'Debido a la configuración de seguridad de su navegador, el editor no tiene acceso al portapapeles.\r\nEs necesario que lo pegue de nuevo en esta ventana.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Plantillas',
 		title			: 'Contenido de Plantillas',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Reemplazar el contenido actual',
 		selectPromptMsg	: 'Por favor selecciona la plantilla a abrir en el editor<br>(el contenido actual se perderá):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/et.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/et.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/et.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Sisesta erimärk',
-		title		: 'Vali erimärk'
+		title		: 'Vali erimärk',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Sisesta link / Muuda linki',
+		other 		: '<muu>',
 		menu		: 'Muuda linki',
 		title		: 'Link',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Emotikon',
-		title	: 'Sisesta emotikon'
+		title	: 'Sisesta emotikon',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Kleebi',
-		cutError	: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+X).',
-		copyError	: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+C).',
-		pasteMsg	: 'Palun kleebi järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (<STRONG>Ctrl+V</STRONG>) ja vajuta seejärel <STRONG>OK</STRONG>.',
+		cutError	: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+X).',
+		copyError	: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+C).',
+		pasteMsg	: 'Palun kleebi järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (<STRONG>Ctrl/Cmd+V</STRONG>) ja vajuta seejärel <STRONG>OK</STRONG>.',
 		securityMsg	: 'Sinu veebisirvija turvaseadete tõttu, ei oma redaktor otsest ligipääsu lõikelaua andmetele. Sa pead kleepima need uuesti siia aknasse.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Šabloon',
 		title			: 'Sisu šabloonid',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Asenda tegelik sisu',
 		selectPromptMsg	: 'Palun vali šabloon, et avada see redaktoris<br />(praegune sisu läheb kaotsi):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/eu.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/eu.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/eu.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Txertatu Karaktere Berezia',
-		title		: 'Karaktere Berezia Aukeratu'
+		title		: 'Karaktere Berezia Aukeratu',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Txertatu/Editatu Esteka',
+		other 		: '<other>', // MISSING
 		menu		: 'Aldatu Esteka',
 		title		: 'Esteka',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Aurpegierak',
-		title	: 'Aurpegiera Sartu'
+		title	: 'Aurpegiera Sartu',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 elementua'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Itsatsi',
-		cutError	: 'Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki moztea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+X).',
-		copyError	: 'Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki kopiatzea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+C).',
-		pasteMsg	: 'Mesedez teklatua erabilita (<STRONG>Ctrl+V</STRONG>) ondorego eremuan testua itsatsi eta <STRONG>OK</STRONG> sakatu.',
+		cutError	: 'Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki moztea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl/Cmd+X).',
+		copyError	: 'Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki kopiatzea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl/Cmd+C).',
+		pasteMsg	: 'Mesedez teklatua erabilita (<STRONG>Ctrl/Cmd+V</STRONG>) ondorego eremuan testua itsatsi eta <STRONG>OK</STRONG> sakatu.',
 		securityMsg	: 'Nabigatzailearen segurtasun ezarpenak direla eta, editoreak ezin du arbela zuzenean erabili. Leiho honetan berriro itsatsi behar duzu.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Txantiloiak',
 		title			: 'Eduki Txantiloiak',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Ordeztu oraingo edukiak',
 		selectPromptMsg	: 'Mesedez txantiloia aukeratu editorean kargatzeko<br>(orain dauden edukiak galduko dira):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/fa.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/fa.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/fa.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'گنجاندن نویسهٴ ویژه',
-		title		: 'گزینش نویسهٴویژه'
+		title		: 'گزینش نویسهٴویژه',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'گنجاندن/ویرایش ِپیوند',
+		other 		: '<سایر>',
 		menu		: 'ویرایش پیوند',
 		title		: 'پیوند',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'خندانک',
-		title	: 'گنجاندن خندانک'
+		title	: 'گنجاندن خندانک',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'چسباندن',
-		cutError	: 'تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمههای صفحهکلید این کار را انجام دهید (Ctrl+X).',
-		copyError	: 'تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای کپیکردن را انجام دهد. لطفا با دکمههای صفحهکلید این کار را انجام دهید (Ctrl+C).',
-		pasteMsg	: 'لطفا متن را با کلیدهای (<STRONG>Ctrl+V</STRONG>) در این جعبهٴ متنی بچسبانید و <STRONG>پذیرش</STRONG> را بزنید.',
+		cutError	: 'تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمههای صفحهکلید این کار را انجام دهید (Ctrl/Cmd+X).',
+		copyError	: 'تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای کپیکردن را انجام دهد. لطفا با دکمههای صفحهکلید این کار را انجام دهید (Ctrl/Cmd+C).',
+		pasteMsg	: 'لطفا متن را با کلیدهای (<STRONG>Ctrl/Cmd+V</STRONG>) در این جعبهٴ متنی بچسبانید و <STRONG>پذیرش</STRONG> را بزنید.',
 		securityMsg	: 'به خاطر تنظیمات امنیتی مرورگر شما، ویرایشگر نمیتواند دسترسی مستقیم به دادههای clipboard داشته باشد. شما باید دوباره آنرا در این پنجره بچسبانید.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'الگوها',
 		title			: 'الگوهای محتویات',
+		options : 'Template Options', // MISSING
 		insertOption	: 'محتویات کنونی جایگزین شوند',
 		selectPromptMsg	: 'لطفا الگوی موردنظر را برای بازکردن در ویرایشگر برگزینید<br>(محتویات کنونی از دست خواهند رفت):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/fi.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/fi.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/fi.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Lisää erikoismerkki',
-		title		: 'Valitse erikoismerkki'
+		title		: 'Valitse erikoismerkki',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Lisää linkki/muokkaa linkkiä',
+		other 		: '<muu>',
 		menu		: 'Muokkaa linkkiä',
 		title		: 'Linkki',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Hymiö',
-		title	: 'Lisää hymiö'
+		title	: 'Lisää hymiö',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 elementti'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Liitä',
-		cutError	: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).',
-		copyError	: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).',
-		pasteMsg	: 'Liitä painamalla (<STRONG>Ctrl+V</STRONG>) ja painamalla <STRONG>OK</STRONG>.',
+		cutError	: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl/Cmd+X).',
+		copyError	: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl/Cmd+C).',
+		pasteMsg	: 'Liitä painamalla (<STRONG>Ctrl/Cmd+V</STRONG>) ja painamalla <STRONG>OK</STRONG>.',
 		securityMsg	: 'Selaimesi turva-asetukset eivät salli editorin käyttää leikepöytää suoraan. Sinun pitää suorittaa liittäminen tässä ikkunassa.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Pohjat',
 		title			: 'Sisältöpohjat',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Korvaa editorin koko sisältö',
 		selectPromptMsg	: 'Valitse pohja editoriin<br>(aiempi sisältö menetetään):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/fo.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/fo.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/fo.js	(revision 5306)
@@ -93,20 +93,25 @@
 		ok				: 'Góðkent',
 		cancel			: 'Avlýst',
-		close			: 'Close', // MISSING
-		preview			: 'Preview', // MISSING
+		close			: 'Lat aftur',
+		preview			: 'Frumsýn',
 		generalTab		: 'Generelt',
 		advancedTab		: 'Fjølbroytt',
-		validateNumberFailed : 'This value is not a number.', // MISSING
-		confirmNewPage	: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
-		confirmCancel	: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+		validateNumberFailed : 'Hetta er ikki eitt tal.',
+		confirmNewPage	: 'Allar ikki goymdar broytingar í hesum innihaldi hvørva. Skal nýggj síða lesast kortini?',
+		confirmCancel	: 'Nakrir valmøguleikar eru broyttir. Ert tú vísur í, at dialogurin skal latast aftur?',
 		options			: 'Options', // MISSING
 		target			: 'Target', // MISSING
-		targetNew		: 'New Window (_blank)', // MISSING
-		targetTop		: 'Topmost Window (_top)', // MISSING
-		targetSelf		: 'Same Window (_self)', // MISSING
-		targetParent	: 'Parent Window (_parent)', // MISSING
+		targetNew		: 'Nýtt vindeyga (_blank)',
+		targetTop		: 'Vindeyga ovast (_top)',
+		targetSelf		: 'Sama vindeyga (_self)',
+		targetParent	: 'Upphavligt vindeyga (_parent)',
 
 		// Put the voice-only part of the label in the span.
-		unavailable		: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+		unavailable		: '%1<span class="cke_accessibility">, ikki tøkt</span>'
+	},
+
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
 	},
 
@@ -115,5 +120,6 @@
 	{
 		toolbar		: 'Set inn sertekn',
-		title		: 'Vel sertekn'
+		title		: 'Vel sertekn',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,12 +128,13 @@
 	{
 		toolbar		: 'Ger/broyt tilknýti',
+		other 		: '<other>', // MISSING
 		menu		: 'Broyt tilknýti',
 		title		: 'Tilknýti',
 		info		: 'Tilknýtis upplýsingar',
-		target		: 'Mál',
+		target		: 'Target', // MISSING
 		upload		: 'Send til ambætaran',
 		advanced	: 'Fjølbroytt',
 		type		: 'Tilknýtisslag',
-		toUrl		: 'URL', // MISSING
+		toUrl		: 'URL',
 		toAnchor	: 'Tilknýti til marknastein í tekstinum',
 		toEmail		: 'Teldupostur',
@@ -192,9 +199,9 @@
 		replaceWith			: 'Yvirskriva við:',
 		notFoundMsg			: 'Leititeksturin varð ikki funnin',
-		matchCase			: 'Munur á stórum og smáðum bókstavum',
+		matchCase			: 'Munur á stórum og smáum bókstavum',
 		matchWord			: 'Bert heil orð',
 		matchCyclic			: 'Match cyclic', // MISSING
 		replaceAll			: 'Yvirskriva alt',
-		replaceSuccessMsg	: '%1 occurrence(s) replaced.' // MISSING
+		replaceSuccessMsg	: '%1 úrslit broytt.'
 	},
 
@@ -216,5 +223,5 @@
 		widthPx		: 'pixels',
 		widthPc		: 'prosent',
-		widthUnit	: 'width unit', // MISSING
+		widthUnit	: 'breiddar unit',
 		height		: 'Hædd',
 		cellSpace	: 'Fjarstøða millum meskar',
@@ -223,15 +230,15 @@
 		summary		: 'Samandráttur',
 		headers		: 'Headers', // MISSING
-		headersNone		: 'None', // MISSING
-		headersColumn	: 'First column', // MISSING
-		headersRow		: 'First Row', // MISSING
-		headersBoth		: 'Both', // MISSING
-		invalidRows		: 'Number of rows must be a number greater than 0.', // MISSING
-		invalidCols		: 'Number of columns must be a number greater than 0.', // MISSING
-		invalidBorder	: 'Border size must be a number.', // MISSING
-		invalidWidth	: 'Table width must be a number.', // MISSING
-		invalidHeight	: 'Table height must be a number.', // MISSING
-		invalidCellSpacing	: 'Cell spacing must be a number.', // MISSING
-		invalidCellPadding	: 'Cell padding must be a number.', // MISSING
+		headersNone		: 'Eingin',
+		headersColumn	: 'Fyrsta kolonna',
+		headersRow		: 'Fyrsta rað',
+		headersBoth		: 'Báðir',
+		invalidRows		: 'Talið av røðum má vera eitt tal størri enn 0.',
+		invalidCols		: 'Talið av kolonnum má vera eitt tal størri enn 0.',
+		invalidBorder	: 'Borda-stødd má vera eitt tal.',
+		invalidWidth	: 'Tabell-breidd má vera eitt tal.',
+		invalidHeight	: 'Tabell-hædd má vera eitt tal.',
+		invalidCellSpacing	: 'Cell spacing má vera eitt tal.',
+		invalidCellPadding	: 'Cell padding má vera eitt tal.',
 
 		cell :
@@ -246,26 +253,26 @@
 			splitHorizontal	: 'Kloyv meska vatnrætt',
 			splitVertical	: 'Kloyv meska loddrætt',
-			title			: 'Cell Properties', // MISSING
-			cellType		: 'Cell Type', // MISSING
-			rowSpan			: 'Rows Span', // MISSING
-			colSpan			: 'Columns Span', // MISSING
+			title			: 'Mesku eginleikar',
+			cellType		: 'Mesku slag',
+			rowSpan			: 'Ræð spenni',
+			colSpan			: 'Kolonnu spenni',
 			wordWrap		: 'Word Wrap', // MISSING
-			hAlign			: 'Horizontal Alignment', // MISSING
-			vAlign			: 'Vertical Alignment', // MISSING
-			alignTop		: 'Top', // MISSING
-			alignMiddle		: 'Middle', // MISSING
-			alignBottom		: 'Bottom', // MISSING
-			alignBaseline	: 'Baseline', // MISSING
-			bgColor			: 'Background Color', // MISSING
-			borderColor		: 'Border Color', // MISSING
-			data			: 'Data', // MISSING
-			header			: 'Header', // MISSING
-			yes				: 'Yes', // MISSING
-			no				: 'No', // MISSING
-			invalidWidth	: 'Cell width must be a number.', // MISSING
-			invalidHeight	: 'Cell height must be a number.', // MISSING
-			invalidRowSpan	: 'Rows span must be a whole number.', // MISSING
-			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
-			chooseColor		: 'Choose' // MISSING
+			hAlign			: 'Horisontal plasering',
+			vAlign			: 'Loddrøtt plasering',
+			alignTop		: 'Top',
+			alignMiddle		: 'Miðja',
+			alignBottom		: 'Botnur',
+			alignBaseline	: 'Basislinja',
+			bgColor			: 'Bakgrundslitur',
+			borderColor		: 'Bordalitur',
+			data			: 'Data',
+			header			: 'Header',
+			yes				: 'Ja',
+			no				: 'Nei',
+			invalidWidth	: 'Meskubreidd má vera eitt tal.',
+			invalidHeight	: 'Meskuhædd má vera eitt tal.',
+			invalidRowSpan	: 'Raðspennið má vera eitt heiltal.',
+			invalidColSpan	: 'Kolonnuspennið má vera eitt heiltal.',
+			chooseColor		: 'Vel'
 		},
 
@@ -379,5 +386,5 @@
 		height		: 'Hædd',
 		lockRatio	: 'Læs lutfallið',
-		unlockRatio	: 'Unlock Ratio', // MISSING
+		unlockRatio	: 'Lutfallið ikki læst',
 		resetSize	: 'Upprunastødd',
 		border		: 'Bordi',
@@ -391,10 +398,10 @@
 		button2Img	: 'Do you want to transform the selected image button on a simple image?', // MISSING
 		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
-		urlMissing	: 'Image source URL is missing.', // MISSING
-		validateWidth	: 'Width must be a whole number.', // MISSING
-		validateHeight	: 'Height must be a whole number.', // MISSING
-		validateBorder	: 'Border must be a whole number.', // MISSING
-		validateHSpace	: 'HSpace must be a whole number.', // MISSING
-		validateVSpace	: 'VSpace must be a whole number.' // MISSING
+		urlMissing	: 'URL til mynd manglar.',
+		validateWidth	: 'Breidd má vera eitt heiltal.',
+		validateHeight	: 'Hædd má vera eitt heiltal.',
+		validateBorder	: 'Bordi má vera eitt heiltal.',
+		validateHSpace	: 'HSpace má vera eitt heiltal.',
+		validateVSpace	: 'VSpace má vera eitt heiltal.'
 	},
 
@@ -403,18 +410,18 @@
 	{
 		properties		: 'Flash eginleikar',
-		propertiesTab	: 'Properties', // MISSING
+		propertiesTab	: 'Eginleikar',
 		title			: 'Flash eginleikar',
 		chkPlay			: 'Avspælingin byrjar sjálv',
 		chkLoop			: 'Endurspæl',
 		chkMenu			: 'Ger Flash skrá virkna',
-		chkFull			: 'Allow Fullscreen', // MISSING
+		chkFull			: 'Loyv fullan skerm',
  		scale			: 'Skalering',
 		scaleAll		: 'Vís alt',
 		scaleNoBorder	: 'Eingin bordi',
 		scaleFit		: 'Neyv skalering',
-		access			: 'Script Access', // MISSING
-		accessAlways	: 'Always', // MISSING
-		accessSameDomain: 'Same domain', // MISSING
-		accessNever		: 'Never', // MISSING
+		access			: 'Script atgongd',
+		accessAlways	: 'Altíð',
+		accessSameDomain: 'Sama navnaøki',
+		accessNever		: 'Ongantíð',
 		align			: 'Justering',
 		alignLeft		: 'Vinstra',
@@ -427,16 +434,16 @@
 		alignTextTop	: 'Tekst toppur',
 		alignTop		: 'Ovast',
-		quality			: 'Quality', // MISSING
-		qualityBest		: 'Best', // MISSING
-		qualityHigh		: 'High', // MISSING
-		qualityAutoHigh	: 'Auto High', // MISSING
-		qualityMedium	: 'Medium', // MISSING
-		qualityAutoLow	: 'Auto Low', // MISSING
-		qualityLow		: 'Low', // MISSING
+		quality			: 'Góðska',
+		qualityBest		: 'Besta',
+		qualityHigh		: 'Høg',
+		qualityAutoHigh	: 'Auto høg',
+		qualityMedium	: 'Meðal',
+		qualityAutoLow	: 'Auto Lág',
+		qualityLow		: 'Lág',
 		windowModeWindow: 'Window', // MISSING
-		windowModeOpaque: 'Opaque', // MISSING
-		windowModeTransparent : 'Transparent', // MISSING
+		windowModeOpaque: 'Ikki transparent',
+		windowModeTransparent : 'Transparent',
 		windowMode		: 'Window mode', // MISSING
-		flashvars		: 'Variables for Flash', // MISSING
+		flashvars		: 'Variablar fyri Flash',
 		bgcolor			: 'Bakgrundslitur',
 		width			: 'Breidd',
@@ -445,8 +452,8 @@
 		vSpace			: 'Vinstri breddi',
 		validateSrc		: 'Vinarliga skriva tilknýti (URL)',
-		validateWidth	: 'Width must be a number.', // MISSING
-		validateHeight	: 'Height must be a number.', // MISSING
-		validateHSpace	: 'HSpace must be a number.', // MISSING
-		validateVSpace	: 'VSpace must be a number.' // MISSING
+		validateWidth	: 'Breidd má vera eitt tal.',
+		validateHeight	: 'Hædd má vera eitt tal.',
+		validateHSpace	: 'HSpace má vera eitt tal.',
+		validateVSpace	: 'VSpace má vera eitt tal.'
 	},
 
@@ -455,7 +462,7 @@
 	{
 		toolbar			: 'Kanna stavseting',
-		title			: 'Spell Check', // MISSING
-		notAvailable	: 'Sorry, but service is unavailable now.', // MISSING
-		errorLoading	: 'Error loading application service host: %s.', // MISSING
+		title			: 'Kanna stavseting',
+		notAvailable	: 'Tíverri, ikki tøkt í løtuni.',
+		errorLoading	: 'Feilur við innlesing av application service host: %s.',
 		notInDic		: 'Finst ikki í orðabókini',
 		changeTo		: 'Broyt til',
@@ -477,11 +484,12 @@
 	{
 		toolbar	: 'Smiley',
-		title	: 'Vel Smiley'
+		title	: 'Vel Smiley',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
-		eleTitle : '%1 element' // MISSING
+		eleLabel : 'Slóð til elementir',
+		eleTitle : '%1 element'
 	},
 
@@ -504,7 +512,7 @@
 	{
 		title		: 'Innrita',
-		cutError	: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (CTRL+X).',
-		copyError	: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (CTRL+C).',
-		pasteMsg	: 'Vinarliga koyr tekstin í hendan rútin við knappaborðinum (<strong>CTRL+V</strong>) og klikk á <strong>Góðtak</strong>.',
+		cutError	: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (Ctrl/Cmd+X).',
+		copyError	: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (Ctrl/Cmd+C).',
+		pasteMsg	: 'Vinarliga koyr tekstin í hendan rútin við knappaborðinum (<strong>Ctrl/Cmd+V</strong>) og klikk á <strong>Góðtak</strong>.',
 		securityMsg	: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í beinleiðis atgongd til avritingarminnið. Tygum mugu royna aftur í hesum rútinum.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -513,8 +521,8 @@
 	pastefromword :
 	{
-		confirmCleanup	: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+		confirmCleanup	: 'Teksturin, tú roynir at seta inn, sýnist at stava frá Word. Skal teksturin reinsast fyrst?',
 		toolbar			: 'Innrita frá Word',
 		title			: 'Innrita frá Word',
-		error			: 'It was not possible to clean up the pasted data due to an internal error' // MISSING
+		error			: 'Tað eyðnaðist ikki at reinsa tekstin vegna ein internan feil'
 	},
 
@@ -529,4 +537,5 @@
 		button			: 'Skabelónir',
 		title			: 'Innihaldsskabelónir',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Yvirskriva núverandi innihald',
 		selectPromptMsg	: 'Vinarliga vel ta skabelón, ið skal opnast í tekstviðgeranum<br>(Hetta yvirskrivar núverandi innihald):',
@@ -539,8 +548,8 @@
 	{
 		label		: 'Typografi',
-		panelTitle	: 'Formatting Styles', // MISSING
-		panelTitle1	: 'Block Styles', // MISSING
-		panelTitle2	: 'Inline Styles', // MISSING
-		panelTitle3	: 'Object Styles' // MISSING
+		panelTitle	: 'Formatterings stílir',
+		panelTitle1	: 'Blokk stílir',
+		panelTitle2	: 'Inline stílir',
+		panelTitle3	: 'Object stílir'
 	},
 
@@ -564,17 +573,17 @@
 	div :
 	{
-		title				: 'Create Div Container', // MISSING
-		toolbar				: 'Create Div Container', // MISSING
-		cssClassInputLabel	: 'Stylesheet Classes', // MISSING
-		styleSelectLabel	: 'Style', // MISSING
-		IdInputLabel		: 'Id', // MISSING
-		languageCodeInputLabel	: ' Language Code', // MISSING
-		inlineStyleInputLabel	: 'Inline Style', // MISSING
-		advisoryTitleInputLabel	: 'Advisory Title', // MISSING
-		langDirLabel		: 'Language Direction', // MISSING
-		langDirLTRLabel		: 'Left to Right (LTR)', // MISSING
-		langDirRTLLabel		: 'Right to Left (RTL)', // MISSING
-		edit				: 'Edit Div', // MISSING
-		remove				: 'Remove Div' // MISSING
+		title				: 'Ger Div Container',
+		toolbar				: 'Ger Div Container',
+		cssClassInputLabel	: 'Stylesheet Classes',
+		styleSelectLabel	: 'Style',
+		IdInputLabel		: 'Id',
+		languageCodeInputLabel	: ' Language Code',
+		inlineStyleInputLabel	: 'Inline Style',
+		advisoryTitleInputLabel	: 'Advisory Title',
+		langDirLabel		: 'Language Direction',
+		langDirLTRLabel		: 'Vinstru til høgru (LTR)',
+		langDirRTLLabel		: 'Høgru til vinstru (RTL)',
+		edit				: 'Redigera Div',
+		remove				: 'Strika Div'
   	},
 
@@ -648,32 +657,32 @@
 	scayt :
 	{
-		title			: 'Spell Check As You Type', // MISSING
-		enable			: 'Enable SCAYT', // MISSING
-		disable			: 'Disable SCAYT', // MISSING
-		about			: 'About SCAYT', // MISSING
-		toggle			: 'Toggle SCAYT', // MISSING
-		options			: 'Options', // MISSING
-		langs			: 'Languages', // MISSING
-		moreSuggestions	: 'More suggestions', // MISSING
-		ignore			: 'Ignore', // MISSING
-		ignoreAll		: 'Ignore All', // MISSING
-		addWord			: 'Add Word', // MISSING
-		emptyDic		: 'Dictionary name should not be empty.', // MISSING
-		optionsTab		: 'Options', // MISSING
-		languagesTab	: 'Languages', // MISSING
-		dictionariesTab	: 'Dictionaries', // MISSING
-		aboutTab		: 'About' // MISSING
+		title			: 'Kanna stavseting, meðan tú skrivar',
+		enable			: 'Enable SCAYT',
+		disable			: 'Disable SCAYT',
+		about			: 'Um SCAYT',
+		toggle			: 'Toggle SCAYT',
+		options			: 'Uppseting',
+		langs			: 'Tungumál',
+		moreSuggestions	: 'Fleiri tilráðingar',
+		ignore			: 'Ignorera',
+		ignoreAll		: 'Ignorera alt',
+		addWord			: 'Legg orð afturat',
+		emptyDic		: 'Heiti á orðabók eigur ikki at vera tómt.',
+		optionsTab		: 'Uppseting',
+		languagesTab	: 'Tungumál',
+		dictionariesTab	: 'Orðabøkur',
+		aboutTab		: 'Um'
 	},
 
 	about :
 	{
-		title		: 'About CKEditor', // MISSING
-		dlgTitle	: 'About CKEditor', // MISSING
-		moreInfo	: 'For licensing information please visit our web site:', // MISSING
+		title		: 'Um CKEditor',
+		dlgTitle	: 'Um CKEditor',
+		moreInfo	: 'Licens upplýsingar finnast á heimasíðu okkara:',
 		copy		: 'Copyright &copy; $1. All rights reserved.' // MISSING
 	},
 
-	maximize : 'Maximize', // MISSING
-	minimize : 'Minimize', // MISSING
+	maximize : 'Maksimera',
+	minimize : 'Minimera',
 
 	fakeobjects :
@@ -681,13 +690,13 @@
 		anchor	: 'Anchor', // MISSING
 		flash	: 'Flash Animation', // MISSING
-		div		: 'Page Break', // MISSING
-		unknown	: 'Unknown Object' // MISSING
-	},
-
-	resize : 'Drag to resize', // MISSING
+		div		: 'Síðuskift',
+		unknown	: 'Ókent Object'
+	},
+
+	resize : 'Drag fyri at broyta stødd',
 
 	colordialog :
 	{
-		title		: 'Select color', // MISSING
+		title		: 'Vel lit',
 		highlight	: 'Highlight', // MISSING
 		selected	: 'Selected', // MISSING
Index: CKEditor/branches/versions/3.3.x/_source/lang/fr-ca.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/fr-ca.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/fr-ca.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Insérer un caractère spécial',
-		title		: 'Insérer un caractère spécial'
+		title		: 'Insérer un caractère spécial',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Insérer/modifier le lien',
+		other 		: '<other>', // MISSING
 		menu		: 'Modifier le lien',
 		title		: 'Propriétés du lien',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Emoticon',
-		title	: 'Insérer un Emoticon'
+		title	: 'Insérer un Emoticon',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Coller',
-		cutError	: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+X).',
-		copyError	: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+C).',
-		pasteMsg	: 'Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl+V</STRONG>) et appuyer sur <STRONG>OK</STRONG>.',
+		cutError	: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+X).',
+		copyError	: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+C).',
+		pasteMsg	: 'Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl/Cmd+V</STRONG>) et appuyer sur <STRONG>OK</STRONG>.',
 		securityMsg	: 'A cause des paramètres de sécurité de votre navigateur, l\'éditeur ne peut accéder au presse-papier directement. Vous devez coller à nouveau le contenu dans cette fenêtre.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Modèles',
 		title			: 'Modèles de contenu',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Remplacer tout le contenu actuel',
 		selectPromptMsg	: 'Sélectionner le modèle à ouvrir dans l\'éditeur<br>(le contenu actuel sera remplacé):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/fr.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/fr.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/fr.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Insérer un caractère spécial',
-		title		: 'Sélectionnez un caractère'
+		title		: 'Sélectionnez un caractère',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Lien',
+		other 		: '<autre>',
 		menu		: 'Editer le lien',
 		title		: 'Lien',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Emoticon',
-		title	: 'Insérer un émoticon'
+		title	: 'Insérer un émoticon',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 éléments'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Coller',
-		cutError	: 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement l\'opération "couper". Veuillez utiliser le raccourci clavier (Ctrl+X).',
-		copyError	: 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement des opérations de copie. Veuillez utiliser le raccourci clavier (Ctrl+C).',
-		pasteMsg	: 'Veuillez coller le texte dans la zone suivante en utilisant le raccourci clavier (<strong>Ctrl+V</strong>) et cliquez sur OK',
+		cutError	: 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement l\'opération "couper". Veuillez utiliser le raccourci clavier (Ctrl/Cmd+X).',
+		copyError	: 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement des opérations de copie. Veuillez utiliser le raccourci clavier (Ctrl/Cmd+C).',
+		pasteMsg	: 'Veuillez coller le texte dans la zone suivante en utilisant le raccourci clavier (<strong>Ctrl/Cmd+V</strong>) et cliquez sur OK',
 		securityMsg	: 'A cause des paramètres de sécurité de votre navigateur, l\'éditeur n\'est pas en mesure d\'accéder directement à vos données contenues dans le presse-papier. Vous devriez réessayer de coller les données dans la fenêtre.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Modèles',
 		title			: 'Contenu des modèles',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Remplacer le contenu actuel',
 		selectPromptMsg	: 'Veuillez sélectionner le modèle pour l\'ouvrir dans l\'éditeur',
Index: CKEditor/branches/versions/3.3.x/_source/lang/gl.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/gl.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/gl.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Inserir Carácter Especial',
-		title		: 'Seleccione Caracter Especial'
+		title		: 'Seleccione Caracter Especial',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Inserir/Editar Ligazón',
+		other 		: '<outro>',
 		menu		: 'Editar Ligazón',
 		title		: 'Ligazón',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smiley',
-		title	: 'Inserte un Smiley'
+		title	: 'Inserte un Smiley',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Pegar',
-		cutError	: 'Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de corte. Por favor, use o teclado para iso (Ctrl+X).',
-		copyError	: 'Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de copia. Por favor, use o teclado para iso (Ctrl+C).',
-		pasteMsg	: 'Por favor, pegue dentro do seguinte cadro usando o teclado (<STRONG>Ctrl+V</STRONG>) e pulse <STRONG>OK</STRONG>.',
+		cutError	: 'Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de corte. Por favor, use o teclado para iso (Ctrl/Cmd+X).',
+		copyError	: 'Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de copia. Por favor, use o teclado para iso (Ctrl/Cmd+C).',
+		pasteMsg	: 'Por favor, pegue dentro do seguinte cadro usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e pulse <STRONG>OK</STRONG>.',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Plantillas',
 		title			: 'Plantillas de Contido',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Replace actual contents', // MISSING
 		selectPromptMsg	: 'Por favor, seleccione a plantilla a abrir no editor<br>(o contido actual perderase):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/gu.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/gu.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/gu.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'વિશિષ્ટ અક્ષર ઇન્સર્ટ/દાખલ કરવું',
-		title		: 'સ્પેશિઅલ વિશિષ્ટ અક્ષર પસંદ કરો'
+		title		: 'સ્પેશિઅલ વિશિષ્ટ અક્ષર પસંદ કરો',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'લિંક ઇન્સર્ટ/દાખલ કરવી',
+		other 		: '<other>', // MISSING
 		menu		: ' લિંક એડિટ/માં ફેરફાર કરવો',
 		title		: 'લિંક',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'સ્માઇલી',
-		title	: 'સ્માઇલી  પસંદ કરો'
+		title	: 'સ્માઇલી  પસંદ કરો',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'પેસ્ટ',
-		cutError	: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કટ કરવાની પરવાનગી નથી આપતી. (Ctrl+X) નો ઉપયોગ કરો.',
-		copyError	: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કોપી કરવાની પરવાનગી નથી આપતી.  (Ctrl+C) का प्रयोग करें।',
-		pasteMsg	: 'Ctrl+V નો પ્રયોગ કરી પેસ્ટ કરો',
+		cutError	: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કટ કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+X) નો ઉપયોગ કરો.',
+		copyError	: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કોપી કરવાની પરવાનગી નથી આપતી.  (Ctrl/Cmd+C) का प्रयोग करें।',
+		pasteMsg	: 'Ctrl/Cmd+V નો પ્રયોગ કરી પેસ્ટ કરો',
 		securityMsg	: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસના કારણે,એડિટર તમારા કિલ્પબોર્ડ ડેટા ને કોપી નથી કરી શકતો. તમારે આ વિન્ડોમાં ફરીથી પેસ્ટ કરવું પડશે.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'ટેમ્પ્લેટ',
 		title			: 'કન્ટેન્ટ ટેમ્પ્લેટ',
+		options : 'Template Options', // MISSING
 		insertOption	: 'મૂળ શબ્દને બદલો',
 		selectPromptMsg	: 'એડિટરમાં ઓપન કરવા ટેમ્પ્લેટ પસંદ કરો (વર્તમાન કન્ટેન્ટ સેવ નહીં થાય):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/he.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/he.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/he.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'הוספת תו מיוחד',
-		title		: 'בחירת תו מיוחד'
+		title		: 'בחירת תו מיוחד',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'הוספת/עריכת קישור',
+		other 		: '<אחר>',
 		menu		: 'מאפייני קישור',
 		title		: 'קישור',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'סמיילי',
-		title	: 'הוספת סמיילי'
+		title	: 'הוספת סמיילי',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 אלמנט'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'הדבקה',
-		cutError	: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+X).',
-		copyError	: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+C).',
-		pasteMsg	: 'נא להדביק בתוך הקופסה באמצעות (<b>Ctrl+V</b>) וללחוץ על <b>אישור</b>.',
+		cutError	: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+X).',
+		copyError	: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+C).',
+		pasteMsg	: 'נא להדביק בתוך הקופסה באמצעות (<b>Ctrl/Cmd+V</b>) וללחוץ על <b>אישור</b>.',
 		securityMsg	: 'עקב הגדרות אבטחה בדפדפן, לא ניתן לגשת אל לוח הגזירים (Clipboard) בצורה ישירה. נא להדביק שוב בחלון זה.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'תבניות',
 		title			: 'תביות תוכן',
+		options : 'Template Options', // MISSING
 		insertOption	: 'החלפת תוכן ממשי',
 		selectPromptMsg	: 'יש לבחור תבנית לפתיחה בעורך.<br />התוכן המקורי ימחק:',
Index: CKEditor/branches/versions/3.3.x/_source/lang/hi.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/hi.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/hi.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'विशेष करॅक्टर इन्सर्ट करें',
-		title		: 'विशेष करॅक्टर चुनें'
+		title		: 'विशेष करॅक्टर चुनें',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'लिंक इन्सर्ट/संपादन',
+		other 		: '<अन्य>',
 		menu		: 'लिंक संपादन',
 		title		: 'लिंक',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'स्माइली',
-		title	: 'स्माइली इन्सर्ट करें'
+		title	: 'स्माइली इन्सर्ट करें',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'पेस्ट',
-		cutError	: 'आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl+X) का प्रयोग करें।',
-		copyError	: 'आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl+C) का प्रयोग करें।',
-		pasteMsg	: 'Ctrl+V का प्रयोग करके पेस्ट करें और ठीक है करें.',
+		cutError	: 'आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+X) का प्रयोग करें।',
+		copyError	: 'आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+C) का प्रयोग करें।',
+		pasteMsg	: 'Ctrl/Cmd+V का प्रयोग करके पेस्ट करें और ठीक है करें.',
 		securityMsg	: 'आपके ब्राउज़र की सुरक्षा आपके ब्राउज़र की सुरKश सैटिंग के कारण, एडिटर आपके क्लिपबोर्ड डेटा को नहीं पा सकता है. आपको उसे इस विन्डो में दोबारा पेस्ट करना होगा.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'टॅम्प्लेट',
 		title			: 'कन्टेन्ट टॅम्प्लेट',
+		options : 'Template Options', // MISSING
 		insertOption	: 'मूल शब्दों को बदलें',
 		selectPromptMsg	: 'ऍडिटर में ओपन करने हेतु टॅम्प्लेट चुनें(वर्तमान कन्टॅन्ट सेव नहीं होंगे):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/hr.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/hr.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/hr.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Ubaci posebne znakove',
-		title		: 'Odaberite posebni karakter'
+		title		: 'Odaberite posebni karakter',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Ubaci/promijeni link',
+		other 		: '<drugi>',
 		menu		: 'Promijeni link',
 		title		: 'Link',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smješko',
-		title	: 'Ubaci smješka'
+		title	: 'Ubaci smješka',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Zalijepi',
-		cutError	: 'Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl+X).',
-		copyError	: 'Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl+C).',
-		pasteMsg	: 'Molimo zaljepite unutar doljnjeg okvira koristeći tipkovnicu (<STRONG>Ctrl+V</STRONG>) i kliknite <STRONG>OK</STRONG>.',
+		cutError	: 'Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+X).',
+		copyError	: 'Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+C).',
+		pasteMsg	: 'Molimo zaljepite unutar doljnjeg okvira koristeći tipkovnicu (<STRONG>Ctrl/Cmd+V</STRONG>) i kliknite <STRONG>OK</STRONG>.',
 		securityMsg	: 'Zbog sigurnosnih postavki Vašeg pretraživača, editor nema direktan pristup Vašem međuspremniku. Potrebno je ponovno zalijepiti tekst u ovaj prozor.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Predlošci',
 		title			: 'Predlošci sadržaja',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Zamijeni trenutne sadržaje',
 		selectPromptMsg	: 'Molimo odaberite predložak koji želite otvoriti<br>(stvarni sadržaj će biti izgubljen):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/hu.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/hu.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/hu.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Speciális karakter beillesztése',
-		title		: 'Speciális karakter választása'
+		title		: 'Speciális karakter választása',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Hivatkozás beillesztése/módosítása',
+		other 		: '<más>',
 		menu		: 'Hivatkozás módosítása',
 		title		: 'Hivatkozás tulajdonságai',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Hangulatjelek',
-		title	: 'Hangulatjel beszúrása'
+		title	: 'Hangulatjel beszúrása',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Beillesztés',
-		cutError	: 'A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl+X).',
-		copyError	: 'A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl+X).',
-		pasteMsg	: 'Másolja be az alábbi mezőbe a <STRONG>Ctrl+V</STRONG> billentyűk lenyomásával, majd nyomjon <STRONG>Rendben</STRONG>-t.',
+		cutError	: 'A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).',
+		copyError	: 'A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).',
+		pasteMsg	: 'Másolja be az alábbi mezőbe a <STRONG>Ctrl/Cmd+V</STRONG> billentyűk lenyomásával, majd nyomjon <STRONG>Rendben</STRONG>-t.',
 		securityMsg	: 'A böngésző biztonsági beállításai miatt a szerkesztő nem képes hozzáférni a vágólap adataihoz. Illeszd be újra ebben az ablakban.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Sablonok',
 		title			: 'Elérhető sablonok',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Kicseréli a jelenlegi tartalmat',
 		selectPromptMsg	: 'Válassza ki melyik sablon nyíljon meg a szerkesztőben<br>(a jelenlegi tartalom elveszik):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/is.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/is.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/is.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Setja inn merki',
-		title		: 'Velja tákn'
+		title		: 'Velja tákn',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Stofna/breyta stiklu',
+		other 		: '<annar>',
 		menu		: 'Breyta stiklu',
 		title		: 'Stikla',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Svipur',
-		title	: 'Velja svip'
+		title	: 'Velja svip',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Líma',
-		cutError	: 'Öryggisstillingar vafrans þíns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið í klippa (Ctrl+X).',
-		copyError	: 'Öryggisstillingar vafrans þíns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið í afrita (Ctrl+C).',
-		pasteMsg	: 'Límdu í svæðið hér að neðan og (<STRONG>Ctrl+V</STRONG>) og smelltu á <STRONG>OK</STRONG>.',
+		cutError	: 'Öryggisstillingar vafrans þíns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið í klippa (Ctrl/Cmd+X).',
+		copyError	: 'Öryggisstillingar vafrans þíns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið í afrita (Ctrl/Cmd+C).',
+		pasteMsg	: 'Límdu í svæðið hér að neðan og (<STRONG>Ctrl/Cmd+V</STRONG>) og smelltu á <STRONG>OK</STRONG>.',
 		securityMsg	: 'Vegna öryggisstillinga í vafranum þínum fær ritillinn ekki beinan aðgang að klippuborðinu. Þú verður að líma innihaldið aftur inn í þennan glugga.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Sniðmát',
 		title			: 'Innihaldssniðmát',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Skipta út raunverulegu innihaldi',
 		selectPromptMsg	: 'Veldu sniðmát til að opna í ritlinum.<br>(Núverandi innihald víkur fyrir því!):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/it.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/it.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/it.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Inserisci carattere speciale',
-		title		: 'Seleziona carattere speciale'
+		title		: 'Seleziona carattere speciale',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Inserisci/Modifica collegamento',
+		other 		: '<altro>',
 		menu		: 'Modifica collegamento',
 		title		: 'Collegamento',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Emoticon',
-		title	: 'Inserisci emoticon'
+		title	: 'Inserisci emoticon',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 elemento'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Incolla',
-		cutError	: 'Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl+X).',
-		copyError	: 'Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl+C).',
-		pasteMsg	: 'Incolla il testo all\'interno dell\'area sottostante usando la scorciatoia di tastiere (<STRONG>Ctrl+V</STRONG>) e premi <STRONG>OK</STRONG>.',
+		cutError	: 'Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+X).',
+		copyError	: 'Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+C).',
+		pasteMsg	: 'Incolla il testo all\'interno dell\'area sottostante usando la scorciatoia di tastiere (<STRONG>Ctrl/Cmd+V</STRONG>) e premi <STRONG>OK</STRONG>.',
 		securityMsg	: 'A causa delle impostazioni di sicurezza del browser,l\'editor non è in grado di accedere direttamente agli appunti. E\' pertanto necessario incollarli di nuovo in questa finestra.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Modelli',
 		title			: 'Contenuto dei modelli',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Cancella il contenuto corrente',
 		selectPromptMsg	: 'Seleziona il modello da aprire nell\'editor<br />(il contenuto attuale verrà eliminato):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/ja.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/ja.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/ja.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: '特殊文字挿入',
-		title		: '特殊文字選択'
+		title		: '特殊文字選択',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'リンク挿入/編集',
+		other 		: '<その他の>',
 		menu		: 'リンク編集',
 		title		: 'ハイパーリンク',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: '絵文字',
-		title	: '顔文字挿入'
+		title	: '顔文字挿入',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 エレメント'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: '貼り付け',
-		cutError	: 'ブラウザーのセキュリティ設定によりエディタの切り取り操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+X)を使用してください。',
-		copyError	: 'ブラウザーのセキュリティ設定によりエディタのコピー操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+C)を使用してください。',
-		pasteMsg	: 'キーボード(<STRONG>Ctrl+V</STRONG>)を使用して、次の入力エリア内で貼って、<STRONG>OK</STRONG>を押してください。',
+		cutError	: 'ブラウザーのセキュリティ設定によりエディタの切り取り操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+X)を使用してください。',
+		copyError	: 'ブラウザーのセキュリティ設定によりエディタのコピー操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+C)を使用してください。',
+		pasteMsg	: 'キーボード(<STRONG>Ctrl/Cmd+V</STRONG>)を使用して、次の入力エリア内で貼って、<STRONG>OK</STRONG>を押してください。',
 		securityMsg	: 'ブラウザのセキュリティ設定により、エディタはクリップボード・データに直接アクセスすることができません。このウィンドウは貼り付け操作を行う度に表示されます。',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'テンプレート(雛形)',
 		title			: 'テンプレート内容',
+		options : 'Template Options', // MISSING
 		insertOption	: '現在のエディタの内容と置換えをします',
 		selectPromptMsg	: 'エディターで使用するテンプレートを選択してください。<br>(現在のエディタの内容は失われます):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/km.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/km.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/km.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'បន្ថែមអក្សរពិសេស',
-		title		: 'តូអក្សរពិសេស'
+		title		: 'តូអក្សរពិសេស',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'បន្ថែម/កែប្រែ ឈ្នាប់',
+		other 		: '<other>', // MISSING
 		menu		: 'កែប្រែឈ្នាប់',
 		title		: 'ឈ្នាប់',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'រូបភាព',
-		title	: 'បញ្ជូលរូបភាព'
+		title	: 'បញ្ជូលរូបភាព',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'ចំលងដាក់',
-		cutError	: 'ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ\u200bមិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ កាត់អត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ  (Ctrl+X) ។',
-		copyError	: 'ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ\u200bមិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ ចំលងអត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl+C)។',
-		pasteMsg	: 'សូមចំលងអត្ថបទទៅដាក់ក្នុងប្រអប់ដូចខាងក្រោមដោយប្រើប្រាស់ ឃី \u200b(<STRONG>Ctrl+V</STRONG>) ហើយចុច <STRONG>OK</STRONG> ។',
+		cutError	: 'ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ\u200bមិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ កាត់អត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ  (Ctrl/Cmd+X) ។',
+		copyError	: 'ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ\u200bមិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ ចំលងអត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+C)។',
+		pasteMsg	: 'សូមចំលងអត្ថបទទៅដាក់ក្នុងប្រអប់ដូចខាងក្រោមដោយប្រើប្រាស់ ឃី \u200b(<STRONG>Ctrl/Cmd+V</STRONG>) ហើយចុច <STRONG>OK</STRONG> ។',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'ឯកសារគំរូ',
 		title			: 'ឯកសារគំរូ របស់អត្ថន័យ',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Replace actual contents', // MISSING
 		selectPromptMsg	: 'សូមជ្រើសរើសឯកសារគំរូ ដើម្បីបើកនៅក្នុងកម្មវិធីតាក់តែងអត្ថបទ<br>(អត្ថបទនឹងបាត់បង់):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/ko.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/ko.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/ko.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: '특수문자 삽입',
-		title		: '특수문자 선택'
+		title		: '특수문자 선택',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: '링크 삽입/변경',
+		other 		: '<기타>',
 		menu		: '링크 수정',
 		title		: '링크',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: '아이콘',
-		title	: '아이콘 삽입'
+		title	: '아이콘 삽입',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: '붙여넣기',
-		cutError	: '브라우저의 보안설정때문에 잘라내기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요. (Ctrl+X).',
-		copyError	: '브라우저의 보안설정때문에 복사하기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요.  (Ctrl+C).',
-		pasteMsg	: '키보드의 (<STRONG>Ctrl+V</STRONG>) 를 이용해서 상자안에 붙여넣고 <STRONG>OK</STRONG> 를 누르세요.',
+		cutError	: '브라우저의 보안설정때문에 잘라내기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요. (Ctrl/Cmd+X).',
+		copyError	: '브라우저의 보안설정때문에 복사하기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요.  (Ctrl/Cmd+C).',
+		pasteMsg	: '키보드의 (<STRONG>Ctrl/Cmd+V</STRONG>) 를 이용해서 상자안에 붙여넣고 <STRONG>OK</STRONG> 를 누르세요.',
 		securityMsg	: '브러우저 보안 설정으로 인해, 클립보드의 자료를 직접 접근할 수 없습니다. 이 창에 다시 붙여넣기 하십시오.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: '템플릿',
 		title			: '내용 템플릿',
+		options : 'Template Options', // MISSING
 		insertOption	: '현재 내용 바꾸기',
 		selectPromptMsg	: '에디터에서 사용할 템플릿을 선택하십시요.<br>(지금까지 작성된 내용은 사라집니다.):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/lt.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/lt.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/lt.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Įterpti specialų simbolį',
-		title		: 'Pasirinkite specialų simbolį'
+		title		: 'Pasirinkite specialų simbolį',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Įterpti/taisyti nuorodą',
+		other 		: '<kitas>',
 		menu		: 'Taisyti nuorodą',
 		title		: 'Nuoroda',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Veideliai',
-		title	: 'Įterpti veidelį'
+		title	: 'Įterpti veidelį',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Įdėti',
-		cutError	: 'Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+X).',
-		copyError	: 'Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+C).',
-		pasteMsg	: 'Žemiau esančiame įvedimo lauke įdėkite tekstą, naudodami klaviatūrą (<STRONG>Ctrl+V</STRONG>) ir paspauskite mygtuką <STRONG>OK</STRONG>.',
+		cutError	: 'Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+X).',
+		copyError	: 'Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+C).',
+		pasteMsg	: 'Žemiau esančiame įvedimo lauke įdėkite tekstą, naudodami klaviatūrą (<STRONG>Ctrl/Cmd+V</STRONG>) ir paspauskite mygtuką <STRONG>OK</STRONG>.',
 		securityMsg	: 'Dėl jūsų naršyklės saugumo nustatymų, redaktorius negali tiesiogiai pasiekti laikinosios atminties. Jums reikia nukopijuoti dar kartą į šį langą.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Šablonai',
 		title			: 'Turinio šablonai',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Pakeisti dabartinį turinį pasirinktu šablonu',
 		selectPromptMsg	: 'Pasirinkite norimą šabloną<br>(<b>Dėmesio!</b> esamas turinys bus prarastas):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/lv.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/lv.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/lv.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Ievietot speciālo simbolu',
-		title		: 'Ievietot īpašu simbolu'
+		title		: 'Ievietot īpašu simbolu',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Ievietot/Labot hipersaiti',
+		other 		: '<cits>',
 		menu		: 'Labot hipersaiti',
 		title		: 'Hipersaite',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smaidiņi',
-		title	: 'Ievietot smaidiņu'
+		title	: 'Ievietot smaidiņu',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Ievietot',
-		cutError	: 'Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj editoram automātiski veikt izgriešanas darbību.  Lūdzu, izmantojiet (Ctrl+X, lai veiktu šo darbību.',
-		copyError	: 'Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj editoram automātiski veikt kopēšanas darbību.  Lūdzu, izmantojiet (Ctrl+C), lai veiktu šo darbību.',
-		pasteMsg	: 'Lūdzu, ievietojiet tekstu šajā laukumā, izmantojot klaviatūru (<STRONG>Ctrl+V</STRONG>) un apstipriniet ar <STRONG>Darīts!</STRONG>.',
+		cutError	: 'Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj editoram automātiski veikt izgriešanas darbību.  Lūdzu, izmantojiet (Ctrl/Cmd+X, lai veiktu šo darbību.',
+		copyError	: 'Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj editoram automātiski veikt kopēšanas darbību.  Lūdzu, izmantojiet (Ctrl/Cmd+C), lai veiktu šo darbību.',
+		pasteMsg	: 'Lūdzu, ievietojiet tekstu šajā laukumā, izmantojot klaviatūru (<STRONG>Ctrl/Cmd+V</STRONG>) un apstipriniet ar <STRONG>Darīts!</STRONG>.',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Sagataves',
 		title			: 'Satura sagataves',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Replace actual contents', // MISSING
 		selectPromptMsg	: 'Lūdzu, norādiet sagatavi, ko atvērt editorā<br>(patreizējie dati tiks zaudēti):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/mn.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/mn.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/mn.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Онцгой тэмдэгт оруулах',
-		title		: 'Онцгой тэмдэгт сонгох'
+		title		: 'Онцгой тэмдэгт сонгох',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Линк Оруулах/Засварлах',
+		other 		: '<other>', // MISSING
 		menu		: 'Холбоос засварлах',
 		title		: 'Линк',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Тодорхойлолт',
-		title	: 'Тодорхойлолт оруулах'
+		title	: 'Тодорхойлолт оруулах',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Буулгах',
-		cutError	: 'Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl+X) товчны хослолыг ашиглана уу.',
-		copyError	: 'Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl+C) товчны хослолыг ашиглана уу.',
-		pasteMsg	: '(<strong>Ctrl+V</strong>) товчийг ашиглан paste хийнэ үү. Мөн <strong>OK</strong> дар.',
+		cutError	: 'Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+X) товчны хослолыг ашиглана уу.',
+		copyError	: 'Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+C) товчны хослолыг ашиглана уу.',
+		pasteMsg	: '(<strong>Ctrl/Cmd+V</strong>) товчийг ашиглан paste хийнэ үү. Мөн <strong>OK</strong> дар.',
 		securityMsg	: 'Таны үзүүлэгч/browser/-н хамгаалалтын тохиргооноос болоод editor clipboard өгөгдөлрүү шууд хандах боломжгүй. Энэ цонход дахин paste хийхийг оролд.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Загварууд',
 		title			: 'Загварын агуулга',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Одоогийн агууллагыг дарж бичих',
 		selectPromptMsg	: 'Загварыг нээж editor-рүү сонгож оруулна уу<br />(Одоогийн агууллагыг устаж магадгүй):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/ms.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/ms.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/ms.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Masukkan Huruf Istimewa',
-		title		: 'Sila pilih huruf istimewa'
+		title		: 'Sila pilih huruf istimewa',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Masukkan/Sunting Sambungan',
+		other 		: '<lain>',
 		menu		: 'Sunting Sambungan',
 		title		: 'Sambungan',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smiley',
-		title	: 'Masukkan Smiley'
+		title	: 'Masukkan Smiley',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Tampal',
-		cutError	: 'Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl+X).',
-		copyError	: 'Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl+C).',
-		pasteMsg	: 'Please paste inside the following box using the keyboard (<strong>Ctrl+V</strong>) and hit OK', // MISSING
+		cutError	: 'Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+X).',
+		copyError	: 'Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+C).',
+		pasteMsg	: 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK', // MISSING
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Templat',
 		title			: 'Templat Kandungan',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Replace actual contents', // MISSING
 		selectPromptMsg	: 'Sila pilih templat untuk dibuka oleh editor<br>(kandungan sebenar akan hilang):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/nb.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/nb.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/nb.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Sett inn spesielt tegn',
-		title		: 'Velg spesielt tegn'
+		title		: 'Velg spesielt tegn',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Sett inn/Rediger lenke',
+		other 		: '<annet>',
 		menu		: 'Rediger lenke',
 		title		: 'Lenke',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smil',
-		title	: 'Sett inn smil'
+		title	: 'Sett inn smil',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Lim inn',
-		cutError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst bruk snareveien (Ctrl+X).',
-		copyError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snareveien (Ctrl+C).',
-		pasteMsg	: 'Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.',
+		cutError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst bruk snareveien (Ctrl/Cmd+X).',
+		copyError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snareveien (Ctrl/Cmd+C).',
+		pasteMsg	: 'Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl/Cmd+V</STRONG>) og trykk <STRONG>OK</STRONG>.',
 		securityMsg	: 'Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må lime det igjen i dette vinduet.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Maler',
 		title			: 'Innholdsmaler',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Erstatt faktisk innold',
 		selectPromptMsg	: 'Velg malen du vil åpne<br>(innholdet du har skrevet blir tapt!):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/nl.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/nl.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/nl.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Speciaal teken invoegen',
-		title		: 'Selecteer speciaal teken'
+		title		: 'Selecteer speciaal teken',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Link invoegen/wijzigen',
+		other 		: '<ander>',
 		menu		: 'Link wijzigen',
 		title		: 'Link',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smiley',
-		title	: 'Smiley invoegen'
+		title	: 'Smiley invoegen',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Plakken',
-		cutError	: 'De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl+X van het toetsenbord.',
-		copyError	: 'De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl+C van het toetsenbord.',
-		pasteMsg	: 'Plak de tekst in het volgende vak gebruik makend van uw toetsenbord (<strong>Ctrl+V</strong>) en klik op <strong>OK</strong>.',
+		cutError	: 'De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl/Cmd+X van het toetsenbord.',
+		copyError	: 'De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl/Cmd+C van het toetsenbord.',
+		pasteMsg	: 'Plak de tekst in het volgende vak gebruik makend van uw toetsenbord (<strong>Ctrl/Cmd+V</strong>) en klik op <strong>OK</strong>.',
 		securityMsg	: 'Door de beveiligingsinstellingen van uw browser is het niet mogelijk om direct vanuit het klembord in de editor te plakken. Middels opnieuw plakken in dit venster kunt u de tekst alsnog plakken in de editor.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Sjablonen',
 		title			: 'Inhoud sjabonen',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Vervang de huidige inhoud',
 		selectPromptMsg	: 'Selecteer het sjabloon dat in de editor geopend moet worden (de actuele inhoud gaat verloren):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/no.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/no.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/no.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Sett inn spesielt tegn',
-		title		: 'Velg spesielt tegn'
+		title		: 'Velg spesielt tegn',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Sett inn/Rediger lenke',
+		other 		: '<annet>',
 		menu		: 'Rediger lenke',
 		title		: 'Lenke',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smil',
-		title	: 'Sett inn smil'
+		title	: 'Sett inn smil',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Lim inn',
-		cutError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst bruk snareveien (Ctrl+X).',
-		copyError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snareveien (Ctrl+C).',
-		pasteMsg	: 'Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.',
+		cutError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst bruk snareveien (Ctrl/Cmd+X).',
+		copyError	: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snareveien (Ctrl/Cmd+C).',
+		pasteMsg	: 'Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl/Cmd+V</STRONG>) og trykk <STRONG>OK</STRONG>.',
 		securityMsg	: 'Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må lime det igjen i dette vinduet.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Maler',
 		title			: 'Innholdsmaler',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Erstatt faktisk innold',
 		selectPromptMsg	: 'Velg malen du vil åpne<br>(innholdet du har skrevet blir tapt!):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/pl.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/pl.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/pl.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Wstaw znak specjalny',
-		title		: 'Wybierz znak specjalny'
+		title		: 'Wybierz znak specjalny',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Wstaw/edytuj hiperłącze',
+		other 		: '<inny>',
 		menu		: 'Edytuj hiperłącze',
 		title		: 'Hiperłącze',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Emotikona',
-		title	: 'Wstaw emotikonę'
+		title	: 'Wstaw emotikonę',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : 'element %1'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Wklej',
-		cutError	: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl+X.',
-		copyError	: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl+C.',
-		pasteMsg	: 'Proszę wkleić w poniższym polu używając klawiaturowego skrótu (<STRONG>Ctrl+V</STRONG>) i kliknąć <STRONG>OK</STRONG>.',
+		cutError	: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.',
+		copyError	: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.',
+		pasteMsg	: 'Proszę wkleić w poniższym polu używając klawiaturowego skrótu (<STRONG>Ctrl/Cmd+V</STRONG>) i kliknąć <STRONG>OK</STRONG>.',
 		securityMsg	: 'Zabezpieczenia przeglądarki uniemożliwiają wklejenie danych bezpośrednio do edytora. Proszę dane wkleić ponownie w tym okienku.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Szablony',
 		title			: 'Szablony zawartości',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Zastąp aktualną zawartość',
 		selectPromptMsg	: 'Wybierz szablon do otwarcia w edytorze<br>(obecna zawartość okna edytora zostanie utracona):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/pt-br.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/pt-br.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/pt-br.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Inserir Caractere Especial',
-		title		: 'Selecione um Caractere Especial'
+		title		: 'Selecione um Caractere Especial',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Inserir/Editar Hiperlink',
+		other 		: '<other>', // MISSING
 		menu		: 'Editar Hiperlink',
 		title		: 'Hiperlink',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Emoticon',
-		title	: 'Inserir Emoticon'
+		title	: 'Inserir Emoticon',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : 'Elemento %1'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Colar',
-		cutError	: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl+X).',
-		copyError	: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl+C).',
-		pasteMsg	: 'Transfira o link usado no box usando o teclado com (<STRONG>Ctrl+V</STRONG>) e <STRONG>OK</STRONG>.',
+		cutError	: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).',
+		copyError	: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).',
+		pasteMsg	: 'Transfira o link usado no box usando o teclado com (<STRONG>Ctrl/Cmd+V</STRONG>) e <STRONG>OK</STRONG>.',
 		securityMsg	: 'As configurações de segurança do seu navegador não permitem que o editor acesse os dados da área de transferência diretamente. Por favor cole o conteúdo novamente nesta janela.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Modelos de layout',
 		title			: 'Modelo de layout do conteúdo',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Substituir o conteúdo atual',
 		selectPromptMsg	: 'Selecione um modelo de layout para ser aberto no editor<br>(o conteúdo atual será perdido):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/pt.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/pt.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/pt.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Inserir Caracter Especial',
-		title		: 'Seleccione um caracter especial'
+		title		: 'Seleccione um caracter especial',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Inserir/Editar Hiperligação',
+		other 		: '<outro>',
 		menu		: 'Editar Hiperligação',
 		title		: 'Hiperligação',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Emoticons',
-		title	: 'Inserir um Emoticon'
+		title	: 'Inserir um Emoticon',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Colar',
-		cutError	: 'A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl+X).',
-		copyError	: 'A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl+C).',
-		pasteMsg	: 'Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl+V</STRONG>) e prima <STRONG>OK</STRONG>.',
+		cutError	: 'A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl/Cmd+X).',
+		copyError	: 'A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl/Cmd+C).',
+		pasteMsg	: 'Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e prima <STRONG>OK</STRONG>.',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Modelos',
 		title			: 'Modelo de Conteúdo',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Replace actual contents', // MISSING
 		selectPromptMsg	: 'Por favor, seleccione o modelo a abrir no editor<br>(o conteúdo actual será perdido):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/ro.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/ro.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/ro.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Inserează caracter special',
-		title		: 'Selectează caracter special'
+		title		: 'Selectează caracter special',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Inserează/Editează link (legătură web)',
+		other 		: '<alt>',
 		menu		: 'Editează Link',
 		title		: 'Link (Legătură web)',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Figură expresivă (Emoticon)',
-		title	: 'Inserează o figură expresivă (Emoticon)'
+		title	: 'Inserează o figură expresivă (Emoticon)',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Adaugă',
-		cutError	: 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl+X).',
-		copyError	: 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl+C).',
-		pasteMsg	: 'Vă rugăm adăugaţi în căsuţa următoare folosind tastatura (<STRONG>Ctrl+V</STRONG>) şi apăsaţi <STRONG>OK</STRONG>.',
+		cutError	: 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+X).',
+		copyError	: 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+C).',
+		pasteMsg	: 'Vă rugăm adăugaţi în căsuţa următoare folosind tastatura (<STRONG>Ctrl/Cmd+V</STRONG>) şi apăsaţi <STRONG>OK</STRONG>.',
 		securityMsg	: 'Din cauza setărilor de securitate ale programului dvs. cu care navigaţi pe internet (browser), editorul nu poate accesa direct datele din clipboard. Va trebui să adăugaţi din nou datele în această fereastră.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Template-uri (şabloane)',
 		title			: 'Template-uri (şabloane) de conţinut',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Înlocuieşte cuprinsul actual',
 		selectPromptMsg	: 'Vă rugăm selectaţi template-ul (şablonul) ce se va deschide în editor<br>(conţinutul actual va fi pierdut):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/ru.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/ru.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/ru.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Вставить специальный символ',
-		title		: 'Выберите специальный символ'
+		title		: 'Выберите специальный символ',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Вставить/Редактировать ссылку',
+		other 		: '<другой>',
 		menu		: 'Вставить ссылку',
 		title		: 'Ссылка',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Смайлик',
-		title	: 'Вставить смайлик'
+		title	: 'Вставить смайлик',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 элемент'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Вставить',
-		cutError	: 'Настройки безопасности вашего браузера не позволяют редактору автоматически выполнять операции вырезания. Пожалуйста, используйте клавиатуру для этого (Ctrl+X).',
-		copyError	: 'Настройки безопасности вашего браузера не позволяют редактору автоматически выполнять операции копирования. Пожалуйста, используйте клавиатуру для этого (Ctrl+C).',
-		pasteMsg	: 'Пожалуйста, вставьте текст в прямоугольник, используя сочетание клавиш (<STRONG>Ctrl+V</STRONG>), и нажмите <STRONG>OK</STRONG>.',
+		cutError	: 'Настройки безопасности вашего браузера не позволяют редактору автоматически выполнять операции вырезания. Пожалуйста, используйте клавиатуру для этого (Ctrl/Cmd+X).',
+		copyError	: 'Настройки безопасности вашего браузера не позволяют редактору автоматически выполнять операции копирования. Пожалуйста, используйте клавиатуру для этого (Ctrl/Cmd+C).',
+		pasteMsg	: 'Пожалуйста, вставьте текст в прямоугольник, используя сочетание клавиш (<STRONG>Ctrl/Cmd+V</STRONG>), и нажмите <STRONG>OK</STRONG>.',
 		securityMsg	: 'По причине настроек безопасности браузера, редактор не имеет доступа к данным буфера обмена напрямую. Вам необходимо вставить текст снова в это окно.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Шаблоны',
 		title			: 'Шаблоны содержимого',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Заменить текущее содержание',
 		selectPromptMsg	: 'Пожалуйста, выберете шаблон для открытия в редакторе<br>(текущее содержимое будет потеряно):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/sk.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/sk.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/sk.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Vložiť špeciálne znaky',
-		title		: 'Výber špeciálneho znaku'
+		title		: 'Výber špeciálneho znaku',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Vložiť/zmeniť odkaz',
+		other 		: '<iný>',
 		menu		: 'Zmeniť odkaz',
 		title		: 'Odkaz',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smajlíky',
-		title	: 'Vkladanie smajlíkov'
+		title	: 'Vkladanie smajlíkov',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Vložiť',
-		cutError	: 'Bezpečnostné nastavenia Vášho prehliadača nedovoľujú editoru spustiť funkciu pre vystrihnutie zvoleného textu do schránky. Prosím vystrihnite zvolený text do schránky pomocou klávesnice (Ctrl+X).',
-		copyError	: 'Bezpečnostné nastavenia Vášho prehliadača nedovoľujú editoru spustiť funkciu pre kopírovanie zvoleného textu do schránky. Prosím skopírujte zvolený text do schránky pomocou klávesnice (Ctrl+C).',
-		pasteMsg	: 'Prosím vložte nasledovný rámček použitím klávesnice (<STRONG>Ctrl+V</STRONG>) a stlačte <STRONG>OK</STRONG>.',
+		cutError	: 'Bezpečnostné nastavenia Vášho prehliadača nedovoľujú editoru spustiť funkciu pre vystrihnutie zvoleného textu do schránky. Prosím vystrihnite zvolený text do schránky pomocou klávesnice (Ctrl/Cmd+X).',
+		copyError	: 'Bezpečnostné nastavenia Vášho prehliadača nedovoľujú editoru spustiť funkciu pre kopírovanie zvoleného textu do schránky. Prosím skopírujte zvolený text do schránky pomocou klávesnice (Ctrl/Cmd+C).',
+		pasteMsg	: 'Prosím vložte nasledovný rámček použitím klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) a stlačte <STRONG>OK</STRONG>.',
 		securityMsg	: 'Bezpečnostné nastavenia Vášho prehliadača nedovoľujú editoru pristupovať priamo k datám v schránke. Musíte ich vložiť znovu do tohto okna.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Šablóny',
 		title			: 'Šablóny obsahu',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Nahradiť aktuálny obsah',
 		selectPromptMsg	: 'Prosím vyberte šablóny na otvorenie v editore<br>(súšasný obsah bude stratený):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/sl.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/sl.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/sl.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Vstavi posebni znak',
-		title		: 'Izberi posebni znak'
+		title		: 'Izberi posebni znak',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Vstavi/uredi povezavo',
+		other 		: '<drug>',
 		menu		: 'Uredi povezavo',
 		title		: 'Povezava',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smeško',
-		title	: 'Vstavi smeška'
+		title	: 'Vstavi smeška',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Prilepi',
-		cutError	: 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+X).',
-		copyError	: 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl+C).',
-		pasteMsg	: 'Prosim prilepite v sleči okvir s pomočjo tipkovnice (<STRONG>Ctrl+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.',
+		cutError	: 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).',
+		copyError	: 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+C).',
+		pasteMsg	: 'Prosim prilepite v sleči okvir s pomočjo tipkovnice (<STRONG>Ctrl/Cmd+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.',
 		securityMsg	: 'Zaradi varnostnih nastavitev vašega brskalnika urejevalnik ne more neposredno dostopati do odložišča. Vsebino odložišča ponovno prilepite v to okno.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Predloge',
 		title			: 'Vsebinske predloge',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Zamenjaj trenutno vsebino',
 		selectPromptMsg	: 'Izberite predlogo, ki jo želite odpreti v urejevalniku<br>(trenutna vsebina bo izgubljena):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/sr-latn.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/sr-latn.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/sr-latn.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Unesi specijalni karakter',
-		title		: 'Odaberite specijalni karakter'
+		title		: 'Odaberite specijalni karakter',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Unesi/izmeni link',
+		other 		: '<остало>',
 		menu		: 'Izmeni link',
 		title		: 'Link',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smajli',
-		title	: 'Unesi smajlija'
+		title	: 'Unesi smajlija',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Zalepi',
-		cutError	: 'Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl+X).',
-		copyError	: 'Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl+C).',
-		pasteMsg	: 'Molimo Vas da zalepite unutar donje povrine koristeći tastaturnu prečicu (<STRONG>Ctrl+V</STRONG>) i da pritisnete <STRONG>OK</STRONG>.',
+		cutError	: 'Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+X).',
+		copyError	: 'Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+C).',
+		pasteMsg	: 'Molimo Vas da zalepite unutar donje povrine koristeći tastaturnu prečicu (<STRONG>Ctrl/Cmd+V</STRONG>) i da pritisnete <STRONG>OK</STRONG>.',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Obrasci',
 		title			: 'Obrasci za sadržaj',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Replace actual contents', // MISSING
 		selectPromptMsg	: 'Molimo Vas da odaberete obrazac koji ce biti primenjen na stranicu (trenutni sadržaj ce biti obrisan):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/sr.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/sr.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/sr.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Унеси специјални карактер',
-		title		: 'Одаберите специјални карактер'
+		title		: 'Одаберите специјални карактер',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Унеси/измени линк',
+		other 		: '<other>', // MISSING
 		menu		: 'Промени линк',
 		title		: 'Линк',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Смајли',
-		title	: 'Унеси смајлија'
+		title	: 'Унеси смајлија',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Залепи',
-		cutError	: 'Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског исецања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl+X).',
-		copyError	: 'Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског копирања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl+C).',
-		pasteMsg	: 'Молимо Вас да залепите унутар доње површине користећи тастатурну пречицу (<STRONG>Ctrl+V</STRONG>) и да притиснете <STRONG>OK</STRONG>.',
+		cutError	: 'Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског исецања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+X).',
+		copyError	: 'Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског копирања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+C).',
+		pasteMsg	: 'Молимо Вас да залепите унутар доње површине користећи тастатурну пречицу (<STRONG>Ctrl/Cmd+V</STRONG>) и да притиснете <STRONG>OK</STRONG>.',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Обрасци',
 		title			: 'Обрасци за садржај',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Replace actual contents', // MISSING
 		selectPromptMsg	: 'Молимо Вас да одаберете образац који ће бити примењен на страницу (тренутни садржај ће бити обрисан):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/sv.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/sv.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/sv.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Klistra in utökat tecken',
-		title		: 'Välj utökat tecken'
+		title		: 'Välj utökat tecken',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Infoga/Redigera länk',
+		other 		: '<annan>',
 		menu		: 'Redigera länk',
 		title		: 'Länk',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Smiley',
-		title	: 'Infoga smiley'
+		title	: 'Infoga smiley',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Klistra in',
-		cutError	: 'Säkerhetsinställningar i Er webläsare tillåter inte åtgården Klipp ut. Använd (Ctrl+X) istället.',
-		copyError	: 'Säkerhetsinställningar i Er webläsare tillåter inte åtgården Kopiera. Använd (Ctrl+C) istället',
-		pasteMsg	: 'Var god och klistra in Er text i rutan nedan genom att använda (<STRONG>Ctrl+V</STRONG>) klicka sen på <STRONG>OK</STRONG>.',
+		cutError	: 'Säkerhetsinställningar i Er webläsare tillåter inte åtgården Klipp ut. Använd (Ctrl/Cmd+X) istället.',
+		copyError	: 'Säkerhetsinställningar i Er webläsare tillåter inte åtgården Kopiera. Använd (Ctrl/Cmd+C) istället',
+		pasteMsg	: 'Var god och klistra in Er text i rutan nedan genom att använda (<STRONG>Ctrl/Cmd+V</STRONG>) klicka sen på <STRONG>OK</STRONG>.',
 		securityMsg	: 'På grund av din webläsares säkerhetsinställningar kan verktyget inte få åtkomst till urklippsdatan. Var god och använd detta fönster istället.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Sidmallar',
 		title			: 'Sidmallar',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Ersätt aktuellt innehåll',
 		selectPromptMsg	: 'Var god välj en mall att använda med editorn<br>(allt nuvarande innehåll raderas):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/th.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/th.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/th.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'แทรกตัวอักษรพิเศษ',
-		title		: 'แทรกตัวอักษรพิเศษ'
+		title		: 'แทรกตัวอักษรพิเศษ',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'แทรก/แก้ไข ลิงค์',
+		other 		: '<อื่น ๆ>',
 		menu		: 'แก้ไข ลิงค์',
 		title		: 'ลิงค์เชื่อมโยงเว็บ อีเมล์ รูปภาพ หรือไฟล์อื่นๆ',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'รูปสื่ออารมณ์',
-		title	: 'แทรกสัญลักษณ์สื่ออารมณ์'
+		title	: 'แทรกสัญลักษณ์สื่ออารมณ์',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'วาง',
-		cutError	: 'ไม่สามารถตัดข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl และตัว X พร้อมกัน).',
-		copyError	: 'ไม่สามารถสำเนาข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl และตัว C พร้อมกัน).',
-		pasteMsg	: 'กรุณาใช้คีย์บอร์ดเท่านั้น โดยกดปุ๋ม (<strong>Ctrl และ V</strong>)พร้อมๆกัน และกด <strong>OK</strong>.',
+		cutError	: 'ไม่สามารถตัดข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว X พร้อมกัน).',
+		copyError	: 'ไม่สามารถสำเนาข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว C พร้อมกัน).',
+		pasteMsg	: 'กรุณาใช้คีย์บอร์ดเท่านั้น โดยกดปุ๋ม (<strong>Ctrl/Cmd และ V</strong>)พร้อมๆกัน และกด <strong>OK</strong>.',
 		securityMsg	: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'เทมเพลต',
 		title			: 'เทมเพลตของส่วนเนื้อหาเว็บไซต์',
+		options : 'Template Options', // MISSING
 		insertOption	: 'แทนที่เนื้อหาเว็บไซต์ที่เลือก',
 		selectPromptMsg	: 'กรุณาเลือก เทมเพลต เพื่อนำไปแก้ไขในอีดิตเตอร์<br />(เนื้อหาส่วนนี้จะหายไป):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/tr.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/tr.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/tr.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Özel Karakter Ekle',
-		title		: 'Özel Karakter Seç'
+		title		: 'Özel Karakter Seç',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Köprü Ekle/Düzenle',
+		other 		: '<diğer>',
 		menu		: 'Köprü Düzenle',
 		title		: 'Köprü',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'İfade',
-		title	: 'İfade Ekle'
+		title	: 'İfade Ekle',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 element' // MISSING
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Yapıştır',
-		cutError	: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl+X) tuşlarını kullanın.',
-		copyError	: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl+C) tuşlarını kullanın.',
-		pasteMsg	: 'Lütfen aşağıdaki kutunun içine yapıştırın. (<STRONG>Ctrl+V</STRONG>) ve <STRONG>Tamam</STRONG> butonunu tıklayın.',
+		cutError	: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl/Cmd+X) tuşlarını kullanın.',
+		copyError	: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl/Cmd+C) tuşlarını kullanın.',
+		pasteMsg	: 'Lütfen aşağıdaki kutunun içine yapıştırın. (<STRONG>Ctrl/Cmd+V</STRONG>) ve <STRONG>Tamam</STRONG> butonunu tıklayın.',
 		securityMsg	: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin direkt olarak panoya erişimine izin vermiyor. Bu pencere içine tekrar yapıştırmalısınız..',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Şablonlar',
 		title			: 'İçerik Şablonları',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Mevcut içerik ile değiştir',
 		selectPromptMsg	: 'Düzenleyicide açmak için lütfen bir şablon seçin.<br>(hali hazırdaki içerik kaybolacaktır.):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/uk.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/uk.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/uk.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Вставити спеціальний символ',
-		title		: 'Оберіть спеціальний символ'
+		title		: 'Оберіть спеціальний символ',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Вставити/Редагувати посилання',
+		other 		: '<інший>',
 		menu		: 'Вставити посилання',
 		title		: 'Посилання',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Смайлик',
-		title	: 'Вставити смайлик'
+		title	: 'Вставити смайлик',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 елемент'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Вставити',
-		cutError	: 'Настройки безпеки вашого браузера не дозволяють редактору автоматично виконувати операції вирізування. Будь ласка, використовуйте клавіатуру для цього (Ctrl+X).',
-		copyError	: 'Настройки безпеки вашого браузера не дозволяють редактору автоматично виконувати операції копіювання. Будь ласка, використовуйте клавіатуру для цього (Ctrl+C).',
-		pasteMsg	: 'Будь ласка, вставте з буфера обміну в цю область, користуючись комбінацією клавіш (<STRONG>Ctrl+V</STRONG>) та натисніть <STRONG>OK</STRONG>.',
+		cutError	: 'Настройки безпеки вашого браузера не дозволяють редактору автоматично виконувати операції вирізування. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+X).',
+		copyError	: 'Настройки безпеки вашого браузера не дозволяють редактору автоматично виконувати операції копіювання. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+C).',
+		pasteMsg	: 'Будь ласка, вставте з буфера обміну в цю область, користуючись комбінацією клавіш (<STRONG>Ctrl/Cmd+V</STRONG>) та натисніть <STRONG>OK</STRONG>.',
 		securityMsg	: 'Редактор не може отримати прямий доступ до буферу обміну у зв\'язку з налаштуваннями вашого браузера. Вам потрібно вставити інформацію повторно в це вікно.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Шаблони',
 		title			: 'Шаблони змісту',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Замінити поточний вміст',
 		selectPromptMsg	: 'Оберіть, будь ласка, шаблон для відкриття в редакторі<br>(поточний зміст буде втрачено):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/vi.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/vi.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/vi.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: 'Chèn Ký tự đặc biệt',
-		title		: 'Hãy chọn Ký tự đặc biệt'
+		title		: 'Hãy chọn Ký tự đặc biệt',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: 'Chèn/Sửa Liên kết',
+		other 		: '<khác>',
 		menu		: 'Sửa Liên kết',
 		title		: 'Liên kết',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: 'Hình biểu lộ cảm xúc (mặt cười)',
-		title	: 'Chèn Hình biểu lộ cảm xúc (mặt cười)'
+		title	: 'Chèn Hình biểu lộ cảm xúc (mặt cười)',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 thành phần'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: 'Dán',
-		cutError	: 'Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl+X).',
-		copyError	: 'Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl+C).',
-		pasteMsg	: 'Hãy dán nội dung vào trong khung bên dưới, sử dụng tổ hợp phím (<STRONG>Ctrl+V</STRONG>) và nhấn vào nút <STRONG>Đồng ý</STRONG>.',
+		cutError	: 'Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+X).',
+		copyError	: 'Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+C).',
+		pasteMsg	: 'Hãy dán nội dung vào trong khung bên dưới, sử dụng tổ hợp phím (<STRONG>Ctrl/Cmd+V</STRONG>) và nhấn vào nút <STRONG>Đồng ý</STRONG>.',
 		securityMsg	: 'Do thiết lập bảo mật của trình duyệt nên trình biên tập không thể truy cập trực tiếp vào nội dung đã sao chép. Bạn cần phải dán lại nội dung vào cửa sổ này.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: 'Mẫu dựng sẵn',
 		title			: 'Nội dung Mẫu dựng sẵn',
+		options : 'Template Options', // MISSING
 		insertOption	: 'Thay thế nội dung hiện tại',
 		selectPromptMsg	: 'Hãy chọn Mẫu dựng sẵn để mở trong trình biên tập<br>(nội dung hiện tại sẽ bị mất):',
Index: CKEditor/branches/versions/3.3.x/_source/lang/zh-cn.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/zh-cn.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/zh-cn.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: '插入特殊符号',
-		title		: '选择特殊符号'
+		title		: '选择特殊符号',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: '插入/编辑超链接',
+		other 		: '<其他>',
 		menu		: '编辑超链接',
 		title		: '超链接',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: '表情符',
-		title	: '插入表情图标'
+		title	: '插入表情图标',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 元素'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: '粘贴',
-		cutError	: '您的浏览器安全设置不允许编辑器自动执行剪切操作，请使用键盘快捷键(Ctrl+X)来完成',
-		copyError	: '您的浏览器安全设置不允许编辑器自动执行复制操作，请使用键盘快捷键(Ctrl+C)来完成',
-		pasteMsg	: '请使用键盘快捷键(<STRONG>Ctrl+V</STRONG>)把内容粘贴到下面的方框里，再按 <STRONG>确定</STRONG>',
+		cutError	: '您的浏览器安全设置不允许编辑器自动执行剪切操作，请使用键盘快捷键(Ctrl/Cmd+X)来完成',
+		copyError	: '您的浏览器安全设置不允许编辑器自动执行复制操作，请使用键盘快捷键(Ctrl/Cmd+C)来完成',
+		pasteMsg	: '请使用键盘快捷键(<STRONG>Ctrl/Cmd+V</STRONG>)把内容粘贴到下面的方框里，再按 <STRONG>确定</STRONG>',
 		securityMsg	: '因为你的浏览器的安全设置原因，本编辑器不能直接访问你的剪贴板内容，你需要在本窗口重新粘贴一次',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: '模板',
 		title			: '内容模板',
+		options : 'Template Options', // MISSING
 		insertOption	: '替换当前内容',
 		selectPromptMsg	: '请选择编辑器内容模板:',
Index: CKEditor/branches/versions/3.3.x/_source/lang/zh.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/lang/zh.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/lang/zh.js	(revision 5306)
@@ -111,9 +111,15 @@
 	},
 
+	contextmenu :
+	{
+		options : 'Context Menu Options' // MISSING
+	},
+
 	// Special char dialog.
 	specialChar		:
 	{
 		toolbar		: '插入特殊符號',
-		title		: '請選擇特殊符號'
+		title		: '請選擇特殊符號',
+		options : 'Special Character Options' // MISSING
 	},
 
@@ -122,4 +128,5 @@
 	{
 		toolbar		: '插入/編輯超連結',
+		other 		: '<其他>',
 		menu		: '編輯超連結',
 		title		: '超連結',
@@ -477,10 +484,11 @@
 	{
 		toolbar	: '表情符號',
-		title	: '插入表情符號'
+		title	: '插入表情符號',
+		options : 'Smiley Options' // MISSING
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path',  // MISSING
+		eleLabel : 'Elements path', // MISSING
 		eleTitle : '%1 元素'
 	},
@@ -504,7 +512,7 @@
 	{
 		title		: '貼上',
-		cutError	: '瀏覽器的安全性設定不允許編輯器自動執行剪下動作。請使用快捷鍵 (Ctrl+X) 剪下。',
-		copyError	: '瀏覽器的安全性設定不允許編輯器自動執行複製動作。請使用快捷鍵 (Ctrl+C) 複製。',
-		pasteMsg	: '請使用快捷鍵 (<strong>Ctrl+V</strong>) 貼到下方區域中並按下 <strong>確定</strong>',
+		cutError	: '瀏覽器的安全性設定不允許編輯器自動執行剪下動作。請使用快捷鍵 (Ctrl/Cmd+X) 剪下。',
+		copyError	: '瀏覽器的安全性設定不允許編輯器自動執行複製動作。請使用快捷鍵 (Ctrl/Cmd+C) 複製。',
+		pasteMsg	: '請使用快捷鍵 (<strong>Ctrl/Cmd+V</strong>) 貼到下方區域中並按下 <strong>確定</strong>',
 		securityMsg	: '因為瀏覽器的安全性設定，本編輯器無法直接存取您的剪貼簿資料，請您自行在本視窗進行貼上動作。',
 		pasteArea	: 'Paste Area' // MISSING
@@ -529,4 +537,5 @@
 		button			: '樣版',
 		title			: '內容樣版',
+		options : 'Template Options', // MISSING
 		insertOption	: '取代原有內容',
 		selectPromptMsg	: '請選擇欲開啟的樣版<br> (原有的內容將會被清除):',
Index: CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/dialogs/a11yhelp.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/dialogs/a11yhelp.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/dialogs/a11yhelp.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/lang/en.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/lang/en.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/lang/en.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/a11yhelp/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/blockquote/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/blockquote/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/blockquote/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/button/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/button/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/button/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -70,7 +70,11 @@
 	render : function( editor, output )
 	{
-		var env = CKEDITOR.env;
-
-		var id = this._.id = 'cke_' + CKEDITOR.tools.getNextNumber();
+		var env = CKEDITOR.env,
+			id = this._.id = 'cke_' + CKEDITOR.tools.getNextNumber(),
+			classes = '',
+			command = this.command, // Get the command name.
+			clickFn,
+			index;
+
 		this._.editor = editor;
 
@@ -91,12 +95,7 @@
 		};
 
-		var clickFn = CKEDITOR.tools.addFunction( instance.execute, instance );
-
-		var index = CKEDITOR.ui.button._.instances.push( instance ) - 1;
-
-		var classes = '';
-
-		// Get the command name.
-		var command = this.command;
+		instance.clickFn = clickFn = CKEDITOR.tools.addFunction( instance.execute, instance );
+
+		instance.index = index = CKEDITOR.ui.button._.instances.push( instance ) - 1;
 
 		if ( this.modes )
@@ -180,5 +179,8 @@
 		{
 			output.push(
-					'<span class="cke_buttonarrow"></span>' );
+					'<span class="cke_buttonarrow">'
+					// BLACK DOWN-POINTING TRIANGLE
+					+ ( CKEDITOR.env.hc ? '&#9660;' : '' )
+					+ '</span>' );
 		}
 
Index: CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/dialogs/paste.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/dialogs/paste.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/dialogs/paste.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -189,20 +189,16 @@
 
 		// It's definitely a better user experience if we make the paste-bin pretty unnoticed
-		// by pulling it off the screen, while this hack will make the paste-bin a control type element
-		// and that become a selection plain later.
-		if ( !CKEDITOR.env.ie && mode != 'html' )
-		{
-			pastebin.setStyles(
-				{
-					position : 'absolute',
-					left : '-1000px',
-					// Position the bin exactly at the position of the selected element
-					// to avoid any subsequent document scroll.
-					top : sel.getStartElement().getDocumentPosition().y + 'px',
-					width : '1px',
-					height : '1px',
-					overflow : 'hidden'
-				});
-		}
+		// by pulling it off the screen.
+		pastebin.setStyles(
+			{
+				position : 'absolute',
+				left : '-1000px',
+				// Position the bin exactly at the position of the selected element
+				// to avoid any subsequent document scroll.
+				top : sel.getStartElement().getDocumentPosition().y + 'px',
+				width : '1px',
+				height : '1px',
+				overflow : 'hidden'
+			});
 
 		var bms = sel.createBookmarks();
Index: CKEditor/branches/versions/3.3.x/_source/plugins/colorbutton/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/colorbutton/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/colorbutton/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -87,5 +87,5 @@
 					panel.hide();
 
-					var style = new CKEDITOR.style( config['colorButton_' + type + 'Style'], color && { color : color } );
+					var style = new CKEDITOR.style( config['colorButton_' + type + 'Style'], { color : color || 'inherit' } );
 
 					editor.fire( 'saveSnapshot' );
@@ -123,5 +123,13 @@
 					output.push( '</tr><tr>' );
 
-				var colorCode = colors[ i ];
+				var parts = colors[ i ].split( '/' ),
+					colorName = parts[ 0 ],
+					colorCode = parts[ 1 ] || colorName;
+
+				// The data can be only a color code (without #) or colorName + color code
+				// If only a color code is provided, then the colorName is the color with the hash
+				if (!parts[1])
+					colorName = '#' + colorName;
+
 				var colorLabel = editor.lang.colors[ colorCode ] || colorCode;
 				output.push(
@@ -129,5 +137,5 @@
 						'<a class="cke_colorbox" _cke_focus=1 hidefocus=true' +
 							' title="', colorLabel, '"' +
-							' onclick="CKEDITOR.tools.callFunction(', clickFn, ',\'#', colorCode, '\',\'', type, '\'); return false;"' +
+							' onclick="CKEDITOR.tools.callFunction(', clickFn, ',\'', colorName, '\',\'', type, '\'); return false;"' +
 							' href="javascript:void(\'', colorLabel, '\')"' +
 							' role="option" aria-posinset="', ( i + 2 ), '" aria-setsize="', total, '">' +
@@ -173,4 +181,8 @@
  * Defines the colors to be displayed in the color selectors. It's a string
  * containing the hexadecimal notation for HTML colors, without the "#" prefix.
+ *
+ * Since 3.3: A name may be optionally defined by prefixing the entries with the
+ * name and the slash character. For example, "FontColor1/FF9900" will be
+ * displayed as the color #FF9900 in the selector, but will be outputted as "FontColor1".
  * @type String
  * @default '000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF'
@@ -178,4 +190,6 @@
  * // Brazil colors only.
  * config.colorButton_colors = '00923E,F8C100,28166F';
+ * @example
+ * config.colorButton_colors = 'FontColor1/FF9900,FontColor2/0066CC,FontColor3/F00'
  */
 CKEDITOR.config.colorButton_colors =
@@ -224,4 +238,10 @@
 	{
 		element		: 'span',
-		styles		: { 'background-color' : '#(color)' }
+		styles		: { 'background-color' : '#(color)' },
+
+		// It's better to apply background color as the innermost style. (#3599)
+		childRule : function( element )
+		{
+			return false;
+		}
 	};
Index: CKEditor/branches/versions/3.3.x/_source/plugins/colordialog/dialogs/colordialog.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/colordialog/dialogs/colordialog.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/colordialog/dialogs/colordialog.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/colordialog/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/colordialog/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/colordialog/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-( function()
+﻿( function()
 {
 	CKEDITOR.plugins.colordialog =
Index: CKEditor/branches/versions/3.3.x/_source/plugins/contextmenu/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/contextmenu/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/contextmenu/plugin.js	(revision 5306)
@@ -37,5 +37,5 @@
 			this);
 
-		this._.definiton =
+		this.definition =
 		{
 			panel:
@@ -44,5 +44,5 @@
 				attributes :
 				{
-					'aria-label' : editor.lang.common.options
+					'aria-label' : editor.lang.contextmenu.options
 				}
 			}
@@ -64,5 +64,5 @@
 			else
 			{
-				menu = this._.menu = new CKEDITOR.menu( editor, this._.definiton );
+				menu = this._.menu = new CKEDITOR.menu( editor, this.definition );
 				menu.onClick = CKEDITOR.tools.bind( function( item )
 				{
Index: CKEditor/branches/versions/3.3.x/_source/plugins/dialog/dialogDefinition.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/dialog/dialogDefinition.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/dialog/dialogDefinition.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/dialog/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/dialog/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/dialog/plugin.js	(revision 5306)
@@ -336,5 +336,5 @@
 				processed = 1;
 			}
-			else if ( keystroke == CKEDITOR.ALT + 121 && !me._.tabBarMode )
+			else if ( keystroke == CKEDITOR.ALT + 121 && !me._.tabBarMode && me.getPageCount() > 1 )
 			{
 				// Alt-F10 puts focus into the current tab item in the tab bar.
@@ -506,6 +506,4 @@
 		for ( i = 0 ; i < buttons.length ; i++ )
 			this._.buttons[ buttons[i].id ] = buttons[i];
-
-		CKEDITOR.skins.load( editor, 'dialog' );
 	};
 
@@ -894,15 +892,10 @@
 			page.setAttribute( 'aria-labelledby', tabId );
 
-			// If only a single page exist, a different style is used in the central pane.
-			if ( this._.pageCount === 0 )
-				this.parts.dialog.addClass( 'cke_single_page' );
-			else
-				this.parts.dialog.removeClass( 'cke_single_page' );
-
 			// Take records for the tabs and elements created.
 			this._.tabs[ contents.id ] = [ tab, page ];
 			this._.tabIdList.push( contents.id );
-			this._.pageCount++;
+			!contents.hidden && this._.pageCount++;
 			this._.lastTab = tab;
+			this.updateStyle();
 
 			var contentMap = this._.contents[ contents.id ] = {},
@@ -962,4 +955,11 @@
 		},
 
+		// Dialog state-specific style updates.
+		updateStyle : function()
+		{
+			// If only a single page shown, a different style is used in the central pane.
+			this.parts.dialog[ ( this._.pageCount === 1 ? 'add' : 'remove' ) + 'Class' ]( 'cke_single_page' );
+		},
+
 		/**
 		 * Hides a page's tab away from the dialog.
@@ -971,7 +971,13 @@
 		{
 			var tab = this._.tabs[id] && this._.tabs[id][0];
-			if ( !tab )
+			if ( !tab || this._.pageCount == 1 )
 				return;
+			// Switch to other tab first when we're hiding the active tab.
+			else if ( id == this._.currentTabId )
+				this.selectPage( getPreviousVisibleTab.call( this ) );
+
 			tab.hide();
+			this._.pageCount--;
+			this.updateStyle();
 		},
 
@@ -988,4 +994,6 @@
 				return;
 			tab.show();
+			this._.pageCount++;
+			this.updateStyle();
 		},
 
@@ -1270,9 +1278,12 @@
 	var defaultDialogDefinition =
 	{
-		resizable : CKEDITOR.DIALOG_RESIZE_NONE,
+		resizable : CKEDITOR.DIALOG_RESIZE_BOTH,
 		minWidth : 600,
 		minHeight : 400,
 		buttons : [ CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ]
 	};
+
+	// The buttons in MacOS Apps are in reverse order #4750
+	CKEDITOR.env.mac && defaultDialogDefinition.buttons.reverse();
 
 	// Tool function used to return an item from an array based on its id
@@ -2785,8 +2796,9 @@
 		openDialog : function( dialogName, callback )
 		{
-			var dialogDefinitions = CKEDITOR.dialog._.dialogDefinitions[ dialogName ];
+			var dialogDefinitions = CKEDITOR.dialog._.dialogDefinitions[ dialogName ],
+					dialogSkin = this.skin.dialog;
 
 			// If the dialogDefinition is already loaded, open it immediately.
-			if ( typeof dialogDefinitions == 'function' )
+			if ( typeof dialogDefinitions == 'function' && dialogSkin._isLoaded )
 			{
 				var storedDialogs = this._.storedDialogs ||
@@ -2810,12 +2822,29 @@
 
 			body.setStyle( 'cursor', 'wait' );
-			CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( dialogDefinitions ), function()
-				{
-					// In case of plugin error, mark it as loading failed.
-					if ( typeof CKEDITOR.dialog._.dialogDefinitions[ dialogName ] != 'function' )
-							CKEDITOR.dialog._.dialogDefinitions[ dialogName ] =  'failed';
-					me.openDialog( dialogName, callback );
-					body.setStyle( 'cursor', cursor );
-				} );
+
+			function onDialogFileLoaded( success )
+			{
+				var dialogDefinition = CKEDITOR.dialog._.dialogDefinitions[ dialogName ],
+						skin = me.skin.dialog;
+
+				// Check if both skin part and definition is loaded.
+				if ( !skin._isLoaded || loadDefinition && typeof success == 'undefined' )
+					return;
+
+				// In case of plugin error, mark it as loading failed.
+				if ( typeof dialogDefinition != 'function' )
+					CKEDITOR.dialog._.dialogDefinitions[ dialogName ] = 'failed';
+
+				me.openDialog( dialogName, callback );
+				body.setStyle( 'cursor', cursor );
+			}
+
+			if ( typeof dialogDefinitions == 'string' )
+			{
+				var loadDefinition = 1;
+				CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( dialogDefinitions ), onDialogFileLoaded );
+			}
+
+			CKEDITOR.skins.load( this, 'dialog', onDialogFileLoaded );
 
 			return null;
Index: CKEditor/branches/versions/3.3.x/_source/plugins/dialogui/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/dialogui/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/dialogui/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/div/dialogs/div.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/div/dialogs/div.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/div/dialogs/div.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
  * Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -437,44 +437,36 @@
 				// Preparing for the 'elementStyle' field.
 				var dialog = this,
-					 stylesField = this.getContentElement( 'info', 'elementStyle' ),
-					 // Reuse the 'stylescombo' plugin's styles definition.
-					 customStylesConfig =  editor.config.stylesCombo_stylesSet,
-					 stylesSetName = customStylesConfig && customStylesConfig.split( ':' )[ 0 ];
-
-				if ( stylesSetName )
-				{
-					CKEDITOR.stylesSet.load( stylesSetName,
-						function( stylesSet )
+					 stylesField = this.getContentElement( 'info', 'elementStyle' );
+
+				 // Reuse the 'stylescombo' plugin's styles definition.
+				editor.getStylesSet( function( stylesDefinitions )
+				{
+					var styleName;
+
+					if ( stylesDefinitions )
+					{
+						// Digg only those styles that apply to 'div'.
+						for ( var i = 0 ; i < stylesDefinitions.length ; i++ )
 						{
-							var stylesDefinitions = stylesSet[ stylesSetName ],
-								styleName;
-
-							if ( stylesDefinitions )
-							{
-								// Digg only those styles that apply to 'div'.
-								for ( var i = 0 ; i < stylesDefinitions.length ; i++ )
-								{
-									var styleDefinition = stylesDefinitions[ i ];
-									if ( styleDefinition.element && styleDefinition.element == 'div' )
-									{
-										styleName = styleDefinition.name;
-										styles[ styleName ] = new CKEDITOR.style( styleDefinition );
-
-										// Populate the styles field options with style name.
-										stylesField.items.push( [ styleName, styleName ] );
-										stylesField.add( styleName, styleName );
-									}
-								}
+							var styleDefinition = stylesDefinitions[ i ];
+							if ( styleDefinition.element && styleDefinition.element == 'div' )
+							{
+								styleName = styleDefinition.name;
+								styles[ styleName ] = new CKEDITOR.style( styleDefinition );
+
+								// Populate the styles field options with style name.
+								stylesField.items.push( [ styleName, styleName ] );
+								stylesField.add( styleName, styleName );
 							}
-
-
-							// We should disable the content element
-							// it if no options are available at all.
-							stylesField[ stylesField.items.length > 1 ? 'enable' : 'disable' ]();
-
-							// Now setup the field value manually.
-							setTimeout( function() { stylesField.setup( dialog._element ); }, 0 );
-						} );
-				}
+						}
+					}
+
+					// We should disable the content element
+					// it if no options are available at all.
+					stylesField[ stylesField.items.length > 1 ? 'enable' : 'disable' ]();
+
+					// Now setup the field value manually.
+					setTimeout( function() { stylesField.setup( dialog._element ); }, 0 );
+				} );
 			},
 			onShow : function()
Index: CKEditor/branches/versions/3.3.x/_source/plugins/div/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/div/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/div/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/domiterator/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/domiterator/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/domiterator/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/elementspath/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/elementspath/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/elementspath/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -57,4 +57,6 @@
 				});
 
+			var filters = editor.config.elementsPath_filters;
+
 			editor.on( 'selectionChange', function( ev )
 				{
@@ -69,43 +71,57 @@
 					while ( element )
 					{
-						var index = elementsList.push( element ) - 1;
-						var name;
-						if ( element.getAttribute( '_cke_real_element_type' ) )
-							name = element.getAttribute( '_cke_real_element_type' );
-						else
-							name = element.getName();
-
-						// Use this variable to add conditional stuff to the
-						// HTML (because we are doing it in reverse order... unshift).
-						var extra = '';
-
-						// Some browsers don't cancel key events in the keydown but in the
-						// keypress.
-						// TODO: Check if really needed for Gecko+Mac.
-						if ( env.opera || ( env.gecko && env.mac ) )
-							extra += ' onkeypress="return false;"';
-
-						// With Firefox, we need to force the button to redraw, otherwise it
-						// will remain in the focus state.
-						if ( env.gecko )
-							extra += ' onblur="this.style.cssText = this.style.cssText;"';
-
-						var label = editor.lang.elementsPath.eleTitle.replace( /%1/, name );
-						html.unshift(
-							'<a' +
-								' id="', idBase, index, '"' +
-								' href="javascript:void(\'', name, '\')"' +
-								' tabindex="-1"' +
-								' title="', label, '"' +
-								( ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) ?
-								' onfocus="event.preventBubble();"' : '' ) +
-								' hidefocus="true" ' +
-								' onkeydown="return CKEDITOR._.elementsPath.keydown(\'', this.name, '\',', index, ', event);"' +
-								extra ,
-								' onclick="return CKEDITOR._.elementsPath.click(\'', this.name, '\',', index, ');"',
-								' role="button" aria-labelledby="' + idBase + index + '_label">',
-									name,
-									'<span id="', idBase, index, '_label" class="cke_label">' + label + '</span>',
-							'</a>' );
+						var ignore = 0;
+						for ( var i = 0; i < filters.length; i++ )
+						{
+							if ( filters[ i ]( element ) === false )
+							{
+								ignore = 1;
+								break;
+							}
+						}
+
+						if ( !ignore )
+						{
+							var index = elementsList.push( element ) - 1;
+							var name;
+							if ( element.getAttribute( '_cke_real_element_type' ) )
+								name = element.getAttribute( '_cke_real_element_type' );
+							else
+								name = element.getName();
+
+							// Use this variable to add conditional stuff to the
+							// HTML (because we are doing it in reverse order... unshift).
+							var extra = '';
+
+							// Some browsers don't cancel key events in the keydown but in the
+							// keypress.
+							// TODO: Check if really needed for Gecko+Mac.
+							if ( env.opera || ( env.gecko && env.mac ) )
+								extra += ' onkeypress="return false;"';
+
+							// With Firefox, we need to force the button to redraw, otherwise it
+							// will remain in the focus state.
+							if ( env.gecko )
+								extra += ' onblur="this.style.cssText = this.style.cssText;"';
+
+							var label = editor.lang.elementsPath.eleTitle.replace( /%1/, name );
+							html.unshift(
+								'<a' +
+									' id="', idBase, index, '"' +
+									' href="javascript:void(\'', name, '\')"' +
+									' tabindex="-1"' +
+									' title="', label, '"' +
+									( ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) ?
+									' onfocus="event.preventBubble();"' : '' ) +
+									' hidefocus="true" ' +
+									' onkeydown="return CKEDITOR._.elementsPath.keydown(\'', this.name, '\',', index, ', event);"' +
+									extra ,
+									' onclick="return CKEDITOR._.elementsPath.click(\'', this.name, '\',', index, ');"',
+									' role="button" aria-labelledby="' + idBase + index + '_label">',
+										name,
+										'<span id="', idBase, index, '_label" class="cke_label">' + label + '</span>',
+								'</a>' );
+
+						}
 
 						if ( name == 'body' )
@@ -188,2 +204,16 @@
 	}
 };
+
+/**
+ * A list of filter functions to determinate whether an element should display in elements path bar.
+ * @type Array Array of functions that optionaly return 'false' to prevent the element from displaying.
+ * @default  []
+ * @example
+ *	// Prevent elements with attribute 'myAttribute' to appear in elements path.
+ *	editor.config.elementsPath_filters.push( function( element )
+ *	{
+ *		if( element.hasAttribute( 'myAttribute') )
+ *			return false;
+ *	});
+ */
+CKEDITOR.config.elementsPath_filters = [];
Index: CKEditor/branches/versions/3.3.x/_source/plugins/enterkey/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/enterkey/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/enterkey/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -27,4 +27,17 @@
 			var doc = range.document;
 
+			// Exit the list when we're inside an empty list item block. (#5376)
+			if ( range.checkStartOfBlock() && range.checkEndOfBlock() )
+			{
+				var path = new CKEDITOR.dom.elementPath( range.startContainer ),
+						block = path.block;
+
+				if ( block.is( 'li' ) || block.getParent().is( 'li' ) )
+				{
+					editor.execCommand( 'outdent' );
+					return;
+				}
+			}
+
 			// Determine the block element to be used.
 			var blockTag = ( mode == CKEDITOR.ENTER_DIV ? 'div' : 'p' );
@@ -81,11 +94,4 @@
 			else
 			{
-
-				if ( isStartOfBlock && isEndOfBlock && previousBlock.is( 'li' ) )
-				{
-					editor.execCommand( 'outdent' );
-					return;
-				}
-
 				var newBlock;
 
@@ -220,5 +226,6 @@
 				isPre = ( startBlockTag == 'pre' );
 
-				if ( isPre )
+				// Gecko prefers <br> as line-break inside <pre> (#4711).
+				if ( isPre && !CKEDITOR.env.gecko )
 					lineBreak = doc.createText( CKEDITOR.env.ie ? '\r' : '\n' );
 				else
@@ -291,4 +298,6 @@
 	function enter( editor, mode, forceMode )
 	{
+		forceMode = editor.config.forceEnterMode || forceMode;
+
 		// Only effective within document.
 		if ( editor.mode != 'wysiwyg' )
Index: CKEditor/branches/versions/3.3.x/_source/plugins/entities/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/entities/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/entities/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/fakeobjects/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/fakeobjects/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/fakeobjects/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/filebrowser/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/filebrowser/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/filebrowser/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -379,20 +379,20 @@
 		{
 			editor._.filebrowserFn = CKEDITOR.tools.addFunction( setUrl, editor );
-
-			CKEDITOR.on( 'dialogDefinition', function( evt )
-			{
-				var definition = evt.data.definition,
-					element;
-				// Associate filebrowser to elements with 'filebrowser' attribute.
-				for ( var i in definition.contents )
-				{
-					element = definition.contents[ i ] ;
-					attachFileBrowser( evt.editor, evt.data.name, definition, element.elements );
-					if ( element.hidden && element.filebrowser )
-					{
-						element.hidden = !isConfigured( definition, element[ 'id' ], element.filebrowser );
-					}
-				}
-			} );
+		}
+	} );
+
+	CKEDITOR.on( 'dialogDefinition', function( evt )
+	{
+		var definition = evt.data.definition,
+			element;
+		// Associate filebrowser to elements with 'filebrowser' attribute.
+		for ( var i in definition.contents )
+		{
+			element = definition.contents[ i ] ;
+			attachFileBrowser( evt.editor, evt.data.name, definition, element.elements );
+			if ( element.hidden && element.filebrowser )
+			{
+				element.hidden = !isConfigured( definition, element[ 'id' ], element.filebrowser );
+			}
 		}
 	} );
Index: CKEditor/branches/versions/3.3.x/_source/plugins/find/dialogs/find.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/find/dialogs/find.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/find/dialogs/find.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -68,6 +68,9 @@
 	var findDialog = function( editor, startupPage )
 	{
-		// Style object for highlights.
-		var highlightStyle = new CKEDITOR.style( editor.config.find_highlight );
+		// Style object for highlights: (#5018)
+		// 1. Defined as full match style to avoid compromising ordinary text color styles.
+		// 2. Must be apply onto inner-most text to avoid conflicting with ordinary text color styles visually.
+		var highlightStyle = new CKEDITOR.style( CKEDITOR.tools.extend( { fullMatch : true, childRule : function(){ return false; } },
+			editor.config.find_highlight ) );
 
 		/**
@@ -82,6 +85,5 @@
 			var walker =
 				new CKEDITOR.dom.walker( range );
-			walker[ matchWord ? 'guard' : 'evaluator' ] =
-				guardDomWalkerNonEmptyTextNode;
+			walker[ 'evaluator' ] = guardDomWalkerNonEmptyTextNode;
 			walker.breakOnFalse = true;
 
Index: CKEditor/branches/versions/3.3.x/_source/plugins/find/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/find/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/find/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/flash/dialogs/flash.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/flash/dialogs/flash.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/flash/dialogs/flash.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -266,10 +266,13 @@
 				}
 
-				// Apply or remove flash parameters.
-				var extraStyles = {};
-				this.commitContent( objectNode, embedNode, paramMap, extraStyles );
+				// A subset of the specified attributes/styles
+				// should also be applied on the fake element to
+				// have better visual effect. (#5240)
+				var extraStyles = {}, extraAttributes = {};
+				this.commitContent( objectNode, embedNode, paramMap, extraStyles, extraAttributes );
 
 				// Refresh the fake image.
 				var newFakeImage = editor.createFakeElement( objectNode || embedNode, 'cke_flash', 'flash', true );
+				newFakeImage.setAttributes( extraAttributes );
 				newFakeImage.setStyles( extraStyles );
 				if ( this.fakeImage )
@@ -573,5 +576,10 @@
 									],
 									setup : loadValue,
-									commit : commitValue
+									commit : function( objectNode, embedNode, paramMap, extraStyles, extraAttributes )
+									{
+										var value = this.getValue();
+										commitValue.apply( this, arguments );
+										value && ( extraAttributes.align = value );
+									}
 								},
 								{
Index: CKEditor/branches/versions/3.3.x/_source/plugins/flash/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/flash/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/flash/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/floatpanel/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/floatpanel/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/floatpanel/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/font/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/font/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/font/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/format/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/format/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/format/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/button.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/button.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/button.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/checkbox.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/checkbox.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/checkbox.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -92,5 +92,17 @@
 								element.setAttribute( 'value', value );
 							else
-								element.removeAttribute( 'value' );
+							{
+								if ( CKEDITOR.env.ie ) 
+								{ 
+									// Remove attribute 'value' of checkbox #4721. 
+									var checkbox = new CKEDITOR.dom.element( 'input' ); 
+									element.copyAttributes( checkbox, { value: 1 } ); 
+									checkbox.replace( element ); 
+									editor.getSelection().selectElement( checkbox ); 
+									data.element = checkbox;      
+								} 
+								else 
+									element.removeAttribute( 'value' );
+							}
 						}
 					},
Index: CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/form.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/form.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/form.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/hiddenfield.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/hiddenfield.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/hiddenfield.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/radio.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/radio.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/radio.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/select.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/select.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/select.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/textarea.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/textarea.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/textarea.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/textfield.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/textfield.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/textfield.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/forms/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/forms/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/forms/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/horizontalrule/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/horizontalrule/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/horizontalrule/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/htmldataprocessor/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/htmldataprocessor/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/htmldataprocessor/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -42,5 +42,10 @@
 	{
 		var lastChild = lastNoneSpaceChild( block );
-		return !lastChild || lastChild.type == CKEDITOR.NODE_ELEMENT && lastChild.name == 'br';
+
+		return !lastChild
+			|| lastChild.type == CKEDITOR.NODE_ELEMENT && lastChild.name == 'br'
+			// Some of the controls in form needs extension too,
+			// to move cursor at the end of the form. (#4791)
+			|| block.name == 'form' && lastChild.name == 'input';
 	}
 
Index: CKEditor/branches/versions/3.3.x/_source/plugins/htmlwriter/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/htmlwriter/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/htmlwriter/plugin.js	(revision 5306)
@@ -176,6 +176,6 @@
 			{
 				this.forceSimpleAmpersand && ( attValue = attValue.replace( /&amp;/g, '&' ) );
-				// Browsers don't always escape quote in attribute values. (#4683)
-				attValue = attValue.replace( /"/g, '&quot;' );
+				// Browsers don't always escape special character in attribute values. (#4683, #4719).
+				attValue = CKEDITOR.tools.htmlEncodeAttr( attValue ); 
 			}
 
Index: CKEditor/branches/versions/3.3.x/_source/plugins/iframedialog/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/iframedialog/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/iframedialog/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/image/dialogs/image.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/image/dialogs/image.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/image/dialogs/image.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -1054,8 +1054,10 @@
 											'<div id="ImagePreviewBox">'+
 											'<a href="javascript:void(0)" target="_blank" onclick="return false;" id="previewLink">'+
-											'<img id="previewImage" alt="" /></a>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. '+
+											'<img id="previewImage" alt="" /></a>' +
+											( editor.config.image_previewText ||
+											'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. '+
 											'Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, '+
-											'nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.' +
-											'</div>'+'</div>'
+											'nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.' ) +
+											'</div></div>'
 										}
 									]
Index: CKEditor/branches/versions/3.3.x/_source/plugins/image/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/image/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/image/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -63,2 +63,12 @@
  */
 CKEDITOR.config.image_removeLinkByEmptyURL = true;
+
+/**
+ *  Padding text to set off the image in preview area.
+ * @name CKEDITOR.config.image_previewText
+ * @type String
+ * @default "Lorem ipsum dolor..." placehoder text.
+ * @example
+ * config.image_previewText = CKEDITOR.tools.repeat( '___ ', 100 );
+ */
+
Index: CKEditor/branches/versions/3.3.x/_source/plugins/indent/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/indent/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/indent/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -136,6 +136,12 @@
 		// Apply indenting or outdenting on the array.
 		var baseIndent = listArray[ lastItem.getCustomData( 'listarray_index' ) ].indent;
-		for ( i = startItem.getCustomData( 'listarray_index' ) ; i <= lastItem.getCustomData( 'listarray_index' ) ; i++ )
-			listArray[i].indent += indentOffset;
+		for ( i = startItem.getCustomData( 'listarray_index' ); i <= lastItem.getCustomData( 'listarray_index' ); i++ )
+		{
+			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() );
+		}
+
 		for ( i = lastItem.getCustomData( 'listarray_index' ) + 1 ;
 				i < listArray.length && listArray[i].indent > baseIndent ; i++ )
@@ -226,5 +232,5 @@
 					block.$.className = className;
 				else
-					block.addClass( editor.config.indentClasses[ indentStep - 1 ] );
+					block.$.className = CKEDITOR.tools.ltrim( className + ' ' + editor.config.indentClasses[ indentStep - 1 ] );
 			}
 			else
@@ -256,4 +262,5 @@
 		else
 			this.indentCssProperty = editor.config.contentsLangDirection == 'ltr' ? 'margin-left' : 'margin-right';
+		this.startDisabled = name == 'outdent';
 	}
 
@@ -326,4 +333,29 @@
  * Size of each indentation step
  * @type Number
+ * @example
+ * config.indentOffset = 40;
+ */
+
+ /**
+ * Unit for the indentation style
+ * @type String
+ * @example
+ * config.indentUnit = 'px';
+ */
+
+ /**
+ * List of classes to use for indenting the contents.
+ * @type Array
+ * @example
+ * // Don't use classes for indenting. (this is the default value)
+ * config.indentClasses = null;
+ * @example
+ * // Use the classes 'Indent1', 'Indent2', 'Indent3'
+ * config.indentClasses = ['Indent1', 'Indent2', 'Indent3'];
+ */
+
+/**
+ * Size of each indentation step
+ * @type Number
  * @default 40
  * @example
Index: CKEditor/branches/versions/3.3.x/_source/plugins/justify/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/justify/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/justify/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/keystrokes/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/keystrokes/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/keystrokes/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/link/dialogs/anchor.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/link/dialogs/anchor.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/link/dialogs/anchor.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/link/dialogs/link.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/link/dialogs/link.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/link/dialogs/link.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -6,4 +6,5 @@
 CKEDITOR.dialog.add( 'link', function( editor )
 {
+	var plugin = CKEDITOR.plugins.link;
 	// Handles the event when the "Target" selection box is changed.
 	var targetChanged = function()
@@ -94,5 +95,5 @@
 	var parseLink = function( editor, element )
 	{
-		var href = element ? ( element.getAttribute( '_cke_saved_href' ) || element.getAttribute( 'href' ) ) : '',
+		var href = ( element  && ( element.getAttribute( '_cke_saved_href' ) || element.getAttribute( 'href' ) ) ) || '',
 		 	javascriptMatch,
 			emailMatch,
@@ -418,5 +419,5 @@
 											[ 'ftp://' ],
 											[ 'news://' ],
-											[ '<other>', '' ]
+											[ editor.lang.link.other , '' ]
 										],
 										setup : function( data )
@@ -448,5 +449,5 @@
 												url = this.getValue(),
 												urlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/gi,
-												urlOnChangeTestOther = /^((javascript:)|[#\/\.])/gi;
+												urlOnChangeTestOther = /^((javascript:)|[#\/\.\?])/gi;
 
 											var protocol = urlOnChangeProtocol.exec( url );
@@ -782,5 +783,5 @@
 										data.target = {};
 
-									data.target.name = this.getValue();
+									data.target.name = this.getValue().replace(/\W/gi, ''); 
 								}
 							}
@@ -1137,28 +1138,19 @@
 			var editor = this.getParentEditor(),
 				selection = editor.getSelection(),
-				ranges = selection.getRanges(),
-				element = null,
-				me = this;
+				element = null;
+
 			// Fill in all the relevant fields if there's already one link selected.
-			if ( ranges.length == 1 )
-			{
-
-				var rangeRoot = ranges[0].getCommonAncestor( true );
-				element = rangeRoot.getAscendant( 'a', true );
-				if ( element && element.getAttribute( 'href' ) )
-				{
-					selection.selectElement( element );
-				}
-				else if ( ( element = rangeRoot.getAscendant( 'img', true ) ) &&
-						 element.getAttribute( '_cke_real_element_type' ) &&
-						 element.getAttribute( '_cke_real_element_type' ) == 'anchor' )
-				{
-					this.fakeObj = element;
-					element = editor.restoreRealElement( this.fakeObj );
-					selection.selectElement( this.fakeObj );
-				}
-				else
-					element = null;
-			}
+			if ( ( element = plugin.getSelectedLink( editor ) ) && element.hasAttribute( 'href' ) )
+				selection.selectElement( element );
+			else if ( ( element = selection.getSelectedElement() ) && element.is( 'img' )
+					&& element.getAttribute( '_cke_real_element_type' )
+					&& element.getAttribute( '_cke_real_element_type' ) == 'anchor' )
+			{
+				this.fakeObj = element;
+				element = editor.restoreRealElement( this.fakeObj );
+				selection.selectElement( this.fakeObj );
+			}
+			else
+				element = null;
 
 			this.setupContent( parseLink.apply( this, [ editor, element ] ) );
Index: CKEditor/branches/versions/3.3.x/_source/plugins/link/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/link/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/link/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -108,5 +108,5 @@
 					if ( !isAnchor )
 					{
-						if ( !( element = element.getAscendant( 'a', true ) ) )
+						if ( !( element = CKEDITOR.plugins.link.getSelectedLink( editor ) ) )
 							return null;
 
@@ -147,4 +147,33 @@
 	requires : [ 'fakeobjects' ]
 } );
+
+CKEDITOR.plugins.link =
+{
+	/**
+	 *  Get the surrounding link element of current selection.
+	 * @param editor
+	 * @example CKEDITOR.plugins.link.getSelectedLink( editor );
+	 * @since 3.2.1
+	 * The following selection will all return the link element.   
+	 *	 <pre>
+	 *  <a href="#">li^nk</a>
+	 *  <a href="#">[link]</a>
+	 *  text[<a href="#">link]</a>
+	 *  <a href="#">li[nk</a>]
+	 *  [<b><a href="#">li]nk</a></b>]
+	 *  [<a href="#"><b>li]nk</b></a>
+	 * </pre>
+	 */
+	getSelectedLink : function( editor )
+	{
+		var range;
+		try { range  = editor.getSelection().getRanges()[ 0 ]; }
+		catch( e ) { return null; }
+
+		range.shrink( CKEDITOR.SHRINK_TEXT );
+		var root = range.getCommonAncestor();
+		return root.getAscendant( 'a', true );
+	}
+};
 
 CKEDITOR.unlinkCommand = function(){};
@@ -179,5 +208,7 @@
 		editor.document.$.execCommand( 'unlink', false, null );
 		selection.selectBookmarks( bookmarks );
-	}
+	},
+
+	startDisabled : true
 };
 
Index: CKEditor/branches/versions/3.3.x/_source/plugins/list/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/list/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/list/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -30,5 +30,5 @@
 				baseArray = [];
 
-			// Iterate over all list items to get their contents and look for inner lists.
+			// Iterate over all list items to and look for inner lists.
 			for ( var i = 0, count = listNode.getChildCount() ; i < count ; i++ )
 			{
@@ -38,5 +38,6 @@
 				if ( listItem.$.nodeName.toLowerCase() != 'li' )
 					continue;
-				var itemObj = { 'parent' : listNode, indent : baseIndentLevel, contents : [] };
+
+				var itemObj = { 'parent' : listNode, indent : baseIndentLevel, element : listItem };
 				if ( !grandparentNode )
 				{
@@ -52,13 +53,10 @@
 				baseArray.push( itemObj );
 
-				for ( var j = 0, itemChildCount = listItem.getChildCount() ; j < itemChildCount ; j++ )
-				{
-					var child = listItem.getChild( j );
+				for ( var j = 0, itemChildCount = listItem.getChildCount(), child; j < itemChildCount ; j++ )
+				{
+					child = listItem.getChild( j );
+					// Push inner list items with +1 indentation in the correct order.
 					if ( child.type == CKEDITOR.NODE_ELEMENT && listNodeNames[ child.getName() ] )
-						// Note the recursion here, it pushes inner list items with
-						// +1 indentation in the correct order.
 						CKEDITOR.plugins.list.listToArray( child, database, baseArray, baseIndentLevel + 1, itemObj.grandparent );
-					else
-						itemObj.contents.push( child );
 				}
 			}
@@ -90,7 +88,5 @@
 						retval.append( rootNode );
 					}
-					currentListItem = rootNode.append( doc.createElement( 'li' ) );
-					for ( var i = 0 ; i < item.contents.length ; i++ )
-						currentListItem.append( item.contents[i].clone( true, true ) );
+					currentListItem = rootNode.append( item.element );
 					currentIndex++;
 				}
@@ -105,7 +101,8 @@
 					currentListItem;
 					if ( listNodeNames[ item.grandparent.getName() ] )
-						currentListItem = doc.createElement( 'li' );
+						currentListItem = item.element;
 					else
 					{
+						// Create completely new blocks here, attributes are dropped.
 						if ( paragraphMode != CKEDITOR.ENTER_BR && item.grandparent.getName() != 'td' )
 							currentListItem = doc.createElement( paragraphName );
@@ -114,6 +111,5 @@
 					}
 
-					for ( i = 0 ; i < item.contents.length ; i++ )
-						currentListItem.append( item.contents[i].clone( true, true ) );
+					item.element.moveChildren( currentListItem );
 
 					if ( currentListItem.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT
Index: CKEditor/branches/versions/3.3.x/_source/plugins/listblock/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/listblock/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/listblock/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -10,7 +10,7 @@
 	onLoad : function()
 	{
-		CKEDITOR.ui.panel.prototype.addListBlock = function( name, definiton )
+		CKEDITOR.ui.panel.prototype.addListBlock = function( name, definition )
 		{
-			return this.addBlock( name, new CKEDITOR.ui.listBlock( this.getHolderElement(), definiton ) );
+			return this.addBlock( name, new CKEDITOR.ui.listBlock( this.getHolderElement(), definition ) );
 		};
 
@@ -196,4 +196,6 @@
 						this.element.getDocument().getById( itemId + '_option' ).setAttribute( 'aria-selected', true );
 						this.element.setAttribute( 'aria-activedescendant', itemId + '_option' );
+
+						this.onMark && this.onMark( item );
 					},
 
@@ -201,4 +203,5 @@
 					{
 						this.element.getDocument().getById( this._.items[ value ] ).removeClass( 'cke_selected' );
+						this.onUnmark && this.onUnmark( this._.items[ value ] );
 					},
 
@@ -212,4 +215,6 @@
 							doc.getById( items[ value ] ).removeClass( 'cke_selected' );
 						}
+
+						this.onUnmark && this.onUnmark();
 					},
 
Index: CKEditor/branches/versions/3.3.x/_source/plugins/maximize/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/maximize/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/maximize/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/menu/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/menu/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/menu/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/menubutton/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/menubutton/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/menubutton/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -37,4 +37,5 @@
 		{
 			menu = _.menu = new CKEDITOR.plugins.contextMenu( editor );
+			menu.definition.panel.attributes[ 'aria-label' ] = editor.lang.common.options;
 
 			menu.onHide = CKEDITOR.tools.bind( function()
Index: CKEditor/branches/versions/3.3.x/_source/plugins/newpage/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/newpage/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/newpage/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/pagebreak/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/pagebreak/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/pagebreak/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/panel/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/panel/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/panel/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -245,4 +245,14 @@
 		this._.onKeyDown = block.onKeyDown && CKEDITOR.tools.bind( block.onKeyDown, block );
 
+		block.onMark = function( item )
+		{
+			holder.setAttribute( 'aria-activedescendant', item.getId() + '_option' );
+		};
+
+		block.onUnmark = function()
+		{
+			holder.removeAttribute( 'aria-activedescendant' );
+		};
+
 		block.show();
 
@@ -279,4 +289,7 @@
 			CKEDITOR.tools.extend( this, blockDefinition );
 
+		if ( !this.attributes.title )
+			this.attributes.title = this.attributes[ 'aria-label' ];
+
 		this.keys = {};
 
@@ -304,4 +317,6 @@
 				item.getDocument().getWindow().focus();
 			item.focus();
+
+			this.onMark && this.onMark( item );
 		}
 	},
Index: CKEditor/branches/versions/3.3.x/_source/plugins/panelbutton/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/panelbutton/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/panelbutton/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/pastefromword/filter/default.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/pastefromword/filter/default.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/pastefromword/filter/default.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/pastefromword/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/pastefromword/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/pastefromword/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/pastetext/dialogs/pastetext.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/pastetext/dialogs/pastetext.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/pastetext/dialogs/pastetext.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/pastetext/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/pastetext/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/pastetext/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/popup/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/popup/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/popup/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/preview/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/preview/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/preview/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/print/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/print/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/print/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/resize/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/resize/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/resize/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -55,4 +55,6 @@
 					}
 				} );
+
+			editor.on( 'destroy', function() { CKEDITOR.tools.removeFunction( mouseDownFn ) } );
 
 			editor.on( 'themeSpace', function( event )
Index: CKEditor/branches/versions/3.3.x/_source/plugins/richcombo/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/richcombo/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/richcombo/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -131,5 +131,5 @@
 					element.focus();
 				},
-				execute : clickFn
+				clickFn : clickFn
 			};
 
@@ -162,4 +162,7 @@
 				});
 
+			// For clean up
+			instance.keyDownFn = keyDownFn;
+
 			output.push(
 				'<span class="cke_rcombo">',
Index: CKEditor/branches/versions/3.3.x/_source/plugins/save/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/save/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/save/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/scayt/dialogs/options.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/scayt/dialogs/options.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/scayt/dialogs/options.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/scayt/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/scayt/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/scayt/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -13,5 +13,6 @@
 	var commandName 	= 'scaytcheck',
 		openPage		= '',
-		scayt_paused	= null;
+		scayt_paused	= null,
+		scayt_control_id = null;
 
 	// Checks if a value exists in an array
@@ -38,20 +39,26 @@
 			// Initialise Scayt instance.
 			var oParams = {};
-			oParams.srcNodeRef = editor.document.getWindow().$.frameElement; 		// Get the iframe.
+			// Get the iframe.
+			oParams.srcNodeRef = editor.document.getWindow().$.frameElement;
 			// syntax : AppName.AppVersion@AppRevision
 			oParams.assocApp  = "CKEDITOR." + CKEDITOR.version + "@" + CKEDITOR.revision;
 			oParams.customerid = editor.config.scayt_customerid  || "1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2";
-			oParams.customDictionaryIds = editor.config.scayt_customDictionaryIds;
-			oParams.userDictionaryName = editor.config.scayt_userDictionaryName;
+			oParams.customDictionaryIds = editor.config.scayt_customDictionaryIds || '';
+			oParams.userDictionaryName = editor.config.scayt_userDictionaryName || '';
 			oParams.sLang = editor.config.scayt_sLang || "en_US";
-
-			if ( CKEDITOR._scaytParams )
-			{
-				for ( var k in CKEDITOR._scaytParams )
-				{
-					oParams[ k ] = CKEDITOR._scaytParams[ k ];
+			
+
+			var scayt_custom_params = window.scayt_custom_params;
+			if ( typeof scayt_custom_params == 'object')
+			{
+				for ( var k in scayt_custom_params )
+				{
+					oParams[ k ] = scayt_custom_params[ k ];
 				}
 			}
-
+			
+			if ( scayt_control_id )
+				oParams.id = scayt_control_id;
+			
 			var scayt_control = new window.scayt( oParams );
 
@@ -73,5 +80,5 @@
 
 			for (var i = 0,l=4; i<l; i++)
-				fTabs.push( uiTabs[i] && plugin.uiTabs[i] );
+			    fTabs.push( uiTabs[i] && plugin.uiTabs[i] );
 
 			plugin.uiTabs = fTabs;
@@ -110,5 +117,6 @@
 					{
 						scayt_paused = scayt_instanse.paused = !scayt_instanse.disabled;
-						scayt_instanse.destroy();
+						scayt_control_id = scayt_instanse.id;
+						scayt_instanse.destroy( true );
 						delete plugin.instances[ editor.name ];
 					}
@@ -119,11 +127,13 @@
 		editor.on( 'destroy', function()
 			{
-				plugin.getScayt( editor ).destroy();
+				scayt_control_id = scayt_instanse.id;
+				plugin.getScayt( editor ).destroy( true );
 			});
 		// Listen to data manipulation to reflect scayt markup.
 		editor.on( 'afterSetData', function()
 			{
-				if ( plugin.isScaytEnabled( editor ) )
-					plugin.getScayt( editor ).refresh();
+				if ( plugin.isScaytEnabled( editor ) ) {
+					window.setTimeout( function(){ plugin.getScayt( editor ).refresh() }, 10 );
+				}
 			});
 
@@ -140,8 +150,5 @@
 
 					// Swallow any SCAYT engine errors.
-					try{
-						scayt_instance.refresh();
-					}catch( er )
-					{}
+					window.setTimeout( function(){ scayt_instance.refresh() }, 10 );
 				}
 			}, this, null, 50 );
@@ -159,8 +166,7 @@
 
 					// Swallow any SCAYT engine errors.
-					try{
-						scayt_instance.refresh();
-					}catch( er )
-					{}
+					
+					window.setTimeout( function(){ scayt_instance.refresh() },10 );
+					
 				}
 			}, this, null, 50 );
@@ -219,4 +225,7 @@
 		loadEngine : function( editor )
 		{
+			// SCAYT doesn't work with Opera.
+			if ( CKEDITOR.env.opera )
+				return;
 			if ( this.engineLoaded === true )
 				return onEngineLoad.apply( editor );	// Add new instance.
@@ -231,5 +240,6 @@
 				this,
 				null,
-				0 );	// First to run.
+				0 
+			);	// First to run.
 
 			this.engineLoaded = -1;	// Loading in progress.
@@ -239,5 +249,5 @@
 			// Default to 'http' for unknown.
 			protocol = protocol.search( /https?:/) != -1? protocol : 'http:';
-			var baseUrl  = "svc.spellchecker.net/spellcheck3/lf/scayt/scayt21.js";
+			var baseUrl  = "svc.spellchecker.net/spellcheck31/lf/scayt/scayt22.js";
 
 			var scaytUrl  =  editor.config.scayt_srcUrl || ( protocol + "//" + baseUrl );
@@ -356,5 +366,6 @@
 			confuiTabs = confuiTabs.split(",");
 			// check array length ! allwaays must be 3 filled with 1 or 0
-			for (var i=0,l=3; i<l; i++){
+			for (var i=0,l=3; i<l; i++)
+			{
 				var flag = parseInt(confuiTabs[i] || "1" ,10);
 				uiTabs.push(  flag  );
@@ -458,11 +469,16 @@
 			if ( editor.contextMenu && editor.addMenuItems )
 			{
-				editor.contextMenu.addListener( function( element )
-					{
-						if ( !( plugin.isScaytEnabled( editor ) && element ) )
+				editor.contextMenu.addListener( function(  )
+					{
+						if ( !plugin.isScaytEnabled( editor ) )
 							return null;
 
 						var scayt_control = plugin.getScayt( editor ),
-							word = scayt_control.getWord( element.$ );
+							node = scayt_control.getScaytNode();
+						
+						if ( !node )
+							return null;
+
+							var word = scayt_control.getWord( node );
 
 						if ( !word )
@@ -472,5 +488,5 @@
 							_r = {},
 							items_suggestion = window.scayt.getSuggestion( word, sLang );
-						if (!items_suggestion || !items_suggestion.length )
+						if ( !items_suggestion || !items_suggestion.length )
 							return null;
 						// Remove unused commands and menuitems
@@ -509,5 +525,5 @@
 										}
 									};
-								})( element.$, items_suggestion[i] );
+								})( node, items_suggestion[i] );
 
 							if ( i < maxSuggestions )
@@ -547,5 +563,5 @@
 							var ignore_command = {
 								exec: function(){
-									scayt_control.ignore(element.$);
+									scayt_control.ignore( node );
 								}
 							};
@@ -558,5 +574,5 @@
 							var ignore_all_command = {
 								exec: function(){
-									scayt_control.ignoreAll(element.$);
+									scayt_control.ignoreAll( node );
 								}
 							};
@@ -569,5 +585,5 @@
 							var addword_command = {
 								exec: function(){
-									window.scayt.addWordToUserDictionary(element.$);
+									window.scayt.addWordToUserDictionary( node );
 								}
 							};
@@ -592,12 +608,146 @@
 				};
 				editor.on( 'showScaytState', showInitialState );
-
 				plugin.loadEngine( editor );
 			}
+
+			// Prevent word marker line from displaying in elements path. (#3570)
+			var elementsPathFilters;
+			if ( elementsPathFilters = editor.config.elementsPath_filters )
+			{
+				elementsPathFilters.push( function( element )
+				{
+					if ( element.hasAttribute( 'scaytid' ) )
+						return false;
+				} );
+			}
+
 		}
 	});
 })();
 
-// TODO: Documentation
-// CKEDITOR.config.scayt_maxSuggestions
-// CKEDITOR.config.scayt_autoStartup
+/**
+ * If enabled (true), turns on SCAYT automatically after loading the editor.
+ * @name CKEDITOR.config.scayt_autoStartup
+ * @type Boolean
+ * @default false
+ * @example
+ * config.scayt_autoStartup = true;
+ */
+
+/**
+ * Defines the number of SCAYT suggestions to show in the main context menu.
+ * The possible values are:
+ * <ul>
+ *	<li>0 (zero): All suggestions are displayed in the main context menu.</li>
+ *	<li>Positive number: The maximum number of suggestions to shown in context
+ *		menu. Other entries will be shown in "More Suggestions" sub-menu.</li>
+ *	<li>Negative number: No suggestions are shown in the main context menu. All
+ *		entries will be listed in the "Suggestions" sub-menu.</li>
+ * </ul>
+ * @name CKEDITOR.config.scayt_maxSuggestions
+ * @type Number
+ * @default 5
+ * @example
+ * // Display only three suggestions in the main context menu.
+ * config.scayt_maxSuggestions = 3;
+ * @example
+ * // Do not show the suggestions directly.
+ * config.scayt_maxSuggestions = -1;
+ */
+
+/**
+ * Sets the customer ID for SCAYT. Required for migration from free version 
+ * with banner to paid version.
+ * @name CKEDITOR.config.scayt_customerid
+ * @type String
+ * @default ''
+ * @example
+ * // Load SCAYT using my customer ID.
+ * config.scayt_customerid  = 'your-encrypted-customer-id';
+ */
+
+/**
+ * Enables/disables the "More Suggestions" sub-menu in the context menu.
+ * The possible values are "on" or "off".
+ * @name CKEDITOR.config.scayt_moreSuggestions
+ * @type String
+ * @default 'on'
+ * @example
+ * // Disables the "More Suggestions" sub-menu.
+ * config.scayt_moreSuggestions = 'off';
+ */
+
+/**
+ * Customizes the display of SCAYT context menu commands ("Add Word", "Ignore"
+ * and "Ignore All"). It must be a string with one or more of the following
+ * words separated by a pipe ("|"):
+ * <ul>
+ *	<li>"off": disables all options.</li>
+ *	<li>"all": enables all options.</li>
+ *	<li>"ignore": enables the "Ignore" option.</li>
+ *	<li>"ignoreall": enables the "Ignore All" option.</li>
+ *	<li>"add": enables the "Add Word" option.</li>
+ * </ul>
+ * @name CKEDITOR.config.scayt_contextCommands
+ * @type String
+ * @default 'all'
+ * @example
+ * // Show only "Add Word" and "Ignore All" in the context menu.
+ * config.scayt_contextCommands = 'add|ignoreall';
+ */
+
+/**
+ * Sets the default spellchecking language for SCAYT.
+ * @name CKEDITOR.config.scayt_sLang
+ * @type String
+ * @default 'en_US'
+ * @example
+ * // Sets SCAYT to German.
+ * config.scayt_sLang = 'de_DE';
+ */
+
+/**
+ * Sets the visibility of the SCAYT tabs in the settings dialog and toolbar
+ * button. The value must contain a "1" (enabled) or "0" (disabled) number for
+ * each of the following entries, in this precise order, separated by a
+ * comma (","): "Options", "Languages" and "Dictionary".
+ * @name CKEDITOR.config.scayt_uiTabs
+ * @type String
+ * @default '1,1,1'
+ * @example
+ * // Hide the "Languages" tab.
+ * config.scayt_uiTabs = '1,0,1';
+ */
+
+
+/**
+ * Set the URL to SCAYT core. Required to switch to licensed version of SCAYT application.
+ * Further details at http://wiki.spellchecker.net/doku.php?id=3rd:wysiwyg:fckeditor:wscckf3l .
+ * @name CKEDITOR.config.scayt_srcUrl
+ * @type String
+ * @default ''
+ * @example
+ * config.scayt_srcUrl = "http://my-host/spellcheck/lf/scayt/scayt.js";
+ */
+
+/**
+ * Links SCAYT to custom dictionaries. It's a string containing dictionary ids
+ * separared by commas (","). Available only for licensed version. 
+ * Further details at http://wiki.spellchecker.net/doku.php?id=custom_dictionary_support .
+ * @name CKEDITOR.config.scayt_customDictionaryIds
+ * @type String
+ * @default ''
+ * @example
+ * config.scayt_customDictionaryIds = '3021,3456,3478"';
+ */
+
+/**
+ * Makes it possible to activate a custom dictionary on SCAYT. The user
+ * dictionary name must be used. Available only for licensed version.
+ * @name CKEDITOR.config.scayt_userDictionaryName
+ * @type String
+ * @default ''
+ * @example
+ * config.scayt_userDictionaryName = 'MyDictionary';
+ */
+
Index: CKEditor/branches/versions/3.3.x/_source/plugins/selection/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/selection/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/selection/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -73,4 +73,5 @@
 	var selectAllCmd =
 	{
+		modes : { wysiwyg : 1, source : 1 },
 		exec : function( editor )
 		{
@@ -81,5 +82,16 @@
 					break;
 				case 'source' :
-					// TODO
+					// Select the contents of the textarea
+					var textarea = editor.textarea.$ ;
+					if ( CKEDITOR.env.ie )
+					{
+						textarea.createTextRange().execCommand( 'SelectAll' ) ;
+					}
+					else
+					{
+						textarea.selectionStart = 0 ;
+						textarea.selectionEnd = textarea.value.length ;
+					}
+					textarea.focus() ;
 			}
 		},
@@ -109,6 +121,11 @@
 						// possible to restore the selection before click
 						// events get executed.
-						body.on( 'focusin', function()
+						body.on( 'focusin', function( evt )
 							{
+								// If there are elements with layout they fire this event but
+								// it must be ignored to allow edit its contents #4682
+								if ( evt.data.$.srcElement.nodeName != 'BODY' )
+									return;
+
 								// If we have saved a range, restore it at this
 								// point.
@@ -127,5 +144,5 @@
 							});
 
-						editor.window.on( 'focus', function()
+						body.on( 'focus', function()
 							{
 								// Enable selections to be saved.
@@ -135,6 +152,11 @@
 							});
 
-						body.on( 'beforedeactivate', function()
+						body.on( 'beforedeactivate', function( evt )
 							{
+								// Ignore this event if it's caused by focus switch between
+								// internal editable control type elements, e.g. layouted paragraph. (#4682)
+								if ( evt.data.$.toElement )
+									return;
+
 								// Disable selections from being saved.
 								saveEnabled = false;
@@ -709,25 +731,28 @@
 				return cache.selectedElement;
 
-			var node;
-
-			if ( this.getType() == CKEDITOR.SELECTION_ELEMENT )
-			{
-				var sel = this.getNative();
-
-				if ( CKEDITOR.env.ie )
-				{
-					try
-					{
-						node = sel.createRange().item(0);
+			var self = this;
+
+			var node = CKEDITOR.tools.tryThese(
+				// Is it native IE control type selection?
+				function()
+				{
+					return self.getNative().createRange().item( 0 );
+				},
+				// Figure it out by checking if there's a single enclosed
+				// node of the range.
+				function()
+				{
+					var range  = self.getRanges()[ 0 ];
+					range.shrink( CKEDITOR.SHRINK_ELEMENT );
+
+					var enclosed;
+					if ( range.startContainer.equals( range.endContainer )
+						&& ( range.endOffset - range.startOffset ) == 1
+						&& styleObjectElements[ ( enclosed = range.startContainer.getChild( range.startOffset ) ).getName() ] )
+					{
+						return enclosed.$;
 					}
-					catch(e) {}
-				}
-				else
-				{
-					var range = sel.getRangeAt( 0 );
-					node = range.startContainer.childNodes[ range.startOffset ];
-				}
-			}
-
+				});
+			
 			return cache.selectedElement = ( node ? new CKEDITOR.dom.element( node ) : null );
 		},
@@ -820,4 +845,8 @@
 					range.moveToElementText( element.$ );
 					range.select();
+				}
+				finally
+				{
+					this.document.fire( 'selectionchange' );
 				}
 
@@ -1065,4 +1094,6 @@
 				ieRange.select();
 			}
+			
+			this.document.fire( 'selectionchange' );
 		}
 	:
Index: CKEditor/branches/versions/3.3.x/_source/plugins/showblocks/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/showblocks/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/showblocks/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/showborders/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/showborders/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/showborders/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -130,34 +130,31 @@
 				} );
 			}
+		}
+	});
 
-			// Table dialog must be aware of it.
-			CKEDITOR.on( 'dialogDefinition', function( ev )
-				{
-					if ( ev.editor != editor )
-						return;
+	// Table dialog must be aware of it.
+	CKEDITOR.on( 'dialogDefinition', function( ev )
+	{
+		var dialogName = ev.data.name;
 
-					var dialogName = ev.data.name;
+		if ( dialogName == 'table' || dialogName == 'tableProperties' )
+		{
+			var dialogDefinition = ev.data.definition,
+				infoTab = dialogDefinition.getContents( 'info' ),
+				borderField = infoTab.get( 'txtBorder' ),
+				originalCommit = borderField.commit;
 
-					if ( dialogName == 'table' || dialogName == 'tableProperties' )
+			borderField.commit = CKEDITOR.tools.override( originalCommit, function( org )
+			{
+				return function( data, selectedTable )
 					{
-						var dialogDefinition = ev.data.definition,
-							infoTab = dialogDefinition.getContents( 'info' ),
-							borderField = infoTab.get( 'txtBorder' ),
-							originalCommit = borderField.commit;
+						org.apply( this, arguments );
+						var value = parseInt( this.getValue(), 10 );
+						selectedTable[ ( !value || value <= 0 ) ? 'addClass' : 'removeClass' ]( showBorderClassName );
+					};
+			} );
+		}
+	});
 
-						borderField.commit = CKEDITOR.tools.override( originalCommit, function( org )
-						{
-							return function( data, selectedTable )
-								{
-									org.apply( this, arguments );
-									var value = parseInt( this.getValue(), 10 );
-									selectedTable[ ( !value || value <= 0 ) ? 'addClass' : 'removeClass' ]( showBorderClassName );
-								};
-						} );
-					}
-				});
-		}
-
-	});
 } )();
 
Index: CKEditor/branches/versions/3.3.x/_source/plugins/smiley/dialogs/smiley.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/smiley/dialogs/smiley.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/smiley/dialogs/smiley.js	(revision 5306)
@@ -56,4 +56,5 @@
 
 		var keystroke = ev.getKeystroke();
+		var rtl = editor.lang.dir == 'rtl';
 		switch ( keystroke )
 		{
@@ -87,5 +88,5 @@
 
 			// RIGHT-ARROW
-			case 39 :
+			case rtl ? 37 : 39 :
 			// TAB
 			case 9 :
@@ -108,5 +109,5 @@
 
 			// LEFT-ARROW
-			case 37 :
+			case rtl ? 39 : 37 :
 			// SHIFT + TAB
 			case CKEDITOR.SHIFT + 9 :
@@ -136,5 +137,5 @@
 	[
 		'<div>' +
-		'<span id="smiley_emtions_label" class="cke_voice_label">' + editor.lang.common.options +'</span>',
+		'<span id="smiley_emtions_label" class="cke_voice_label">' + lang.options +'</span>',
 		'<table role="listbox" aria-labelledby="smiley_emtions_label" style="width:100%;height:100%" cellspacing="2" cellpadding="2"',
 		CKEDITOR.env.ie && CKEDITOR.env.quirks ? ' style="position:absolute;"' : '',
@@ -192,5 +193,5 @@
  		},
 		onClick : onClick,
-		style : 'width: 100%; height: 100%; border-collapse: separate;'
+		style : 'width: 100%; border-collapse: separate;'
 	};
 
Index: CKEditor/branches/versions/3.3.x/_source/plugins/smiley/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/smiley/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/smiley/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -10,4 +10,5 @@
 	init : function( editor )
 	{
+		editor.config.smiley_path = editor.config.smiley_path || ( this.path + 'images/' );
 		editor.addCommand( 'smiley', new CKEDITOR.dialogCommand( 'smiley' ) );
 		editor.ui.addButton( 'Smiley',
@@ -23,4 +24,5 @@
  * The base path used to build the URL for the smiley images. It must end with
  * a slash.
+ * @name CKEDITOR.config.smiley_path
  * @type String
  * @default {@link CKEDITOR.basePath} + 'plugins/smiley/images/'
@@ -30,7 +32,4 @@
  * config.smiley_path = '/images/smileys/';
  */
-CKEDITOR.config.smiley_path = CKEDITOR.basePath +
-	'_source/' +		// @Packager.RemoveLine
-	'plugins/smiley/images/';
 
 /**
Index: CKEditor/branches/versions/3.3.x/_source/plugins/sourcearea/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/sourcearea/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/sourcearea/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -139,4 +139,5 @@
 						unload : function( holderElement )
 						{
+							textarea.clearCustomData();
 							editor.textarea = textarea = null;
 
Index: CKEditor/branches/versions/3.3.x/_source/plugins/specialchar/dialogs/specialchar.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/specialchar/dialogs/specialchar.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/specialchar/dialogs/specialchar.js	(revision 5306)
@@ -12,4 +12,28 @@
 	var dialog,
 		lang = editor.lang.specialChar;
+	
+	var insertSpecialChar = function ( specialChar )
+	{
+		var selection = editor.getSelection(),
+			ranges	  = selection.getRanges(),
+			range, textNode;
+				
+		editor.fire( 'saveSnapshot' );
+		
+		for ( var i = 0, len = ranges.length ; i < len ; i++ )
+		{
+			range = ranges[ i ];
+			range.deleteContents();
+			
+			textNode =  CKEDITOR.dom.element.createFromHtml( specialChar );
+			range.insertNode( textNode );
+		}
+		
+		range.moveToPosition( textNode, CKEDITOR.POSITION_AFTER_END );
+		range.select();
+		
+		editor.fire( 'saveSnapshot' );
+	};
+	
 	var onChoice = function( evt )
 	{
@@ -24,5 +48,10 @@
 			target.removeClass( "cke_light_background" );
 			dialog.hide();
-			editor.insertHtml( value );
+			
+			// Firefox has bug on insert chars into a element use its own API. (#5170)
+			if ( CKEDITOR.env.gecko )
+				insertSpecialChar( value );
+			else
+				editor.insertHtml( value );
 		}
 	};
@@ -82,4 +111,5 @@
 		var relative, nodeToMove;
 		var keystroke = ev.getKeystroke();
+		var rtl = editor.lang.dir == 'rtl';
 
 		switch ( keystroke )
@@ -120,5 +150,5 @@
 
 			// RIGHT-ARROW
-			case 39 :
+			case rtl ? 37 : 39 :
 			// TAB
 			case 9 :
@@ -154,5 +184,5 @@
 
 			// LEFT-ARROW
-			case 37 :
+			case rtl ? 39 : 37 :
 			// SHIFT + TAB
 			case CKEDITOR.SHIFT + 9 :
@@ -285,5 +315,5 @@
 			}
 
-			html.push( '</tbody></table>', '<span id="specialchar_table_label" class="cke_voice_label">' + editor.lang.common.options +'</span>' );
+			html.push( '</tbody></table>', '<span id="specialchar_table_label" class="cke_voice_label">' + lang.options +'</span>' );
 
 			this.getContentElement( 'info', 'charContainer' ).getElement().setHtml( html.join( '' ) );
Index: CKEditor/branches/versions/3.3.x/_source/plugins/styles/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/styles/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/styles/plugin.js	(revision 5306)
@@ -79,5 +79,5 @@
 {
 	var blockElements	= { address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1 };
-	var objectElements	= { a:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,ul:1 };
+	var objectElements	= { a:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1};
 
 	var semicolonFixRegex = /\s*(?:;\s*|$)/;
@@ -128,4 +128,6 @@
 						: this.type == CKEDITOR.STYLE_BLOCK ?
 							applyBlockStyle
+						: this.type == CKEDITOR.STYLE_OBJECT ?
+							applyObjectStyle
 						: null ).call( this, range );
 		},
@@ -139,4 +141,35 @@
 		},
 
+		// Removes any conflicting styles from within the specified range..
+		removeConflictsFromRange : function ( range )
+		{
+			var style = this,
+					overrides = getOverrides( style ),
+					styleCandidates = [],
+					overrideCandidates = [];
+
+			var walker = new CKEDITOR.dom.walker( range );
+			walker.evaluator = function( node )
+			{
+				if ( node.type == CKEDITOR.NODE_ELEMENT )
+				{
+					if ( node.is( style.element ) )
+						styleCandidates.push( node );
+					if ( node.getName() in overrides )
+						overrideCandidates.push( node );
+				}
+			};
+			walker.lastForward();
+
+			// First remove from element any style conflictions.
+			for ( var i = styleCandidates.length - 1 ; i >= 0 ; i-- )
+				removeFromElement( style,  styleCandidates[ i ] );
+
+			// Now remove any other element with different name that is
+			// defined to be overriden.
+			for ( i = overrideCandidates.length - 1 ; i >= 0 ; i-- )
+				removeOverrides( overrideCandidates[ i ], overrides[ overrideCandidates[ i ].getName() ] ) ;
+		},
+
 		applyToObject : function( element )
 		{
@@ -155,4 +188,5 @@
 					return this.checkElementRemovable( elementPath.block || elementPath.blockLimit, true );
 
+				case CKEDITOR.STYLE_OBJECT :
 				case CKEDITOR.STYLE_INLINE :
 
@@ -161,8 +195,13 @@
 					for ( var i = 0, element ; i < elements.length ; i++ )
 					{
-						element = elements[i];
-
-						if ( element == elementPath.block || element == elementPath.blockLimit )
+						element = elements[ i ];
+
+						if ( this.type == CKEDITOR.STYLE_INLINE
+							  && ( element == elementPath.block || element == elementPath.blockLimit ) )
 							continue;
+
+						if( this.type == CKEDITOR.STYLE_OBJECT
+							 && !( element.getName() in objectElements ) )
+								continue;
 
 						if ( this.checkElementRemovable( element, true ) )
@@ -171,4 +210,17 @@
 			}
 			return false;
+		},
+
+		checkApplicable : function( elementPath )
+		{
+			switch ( this.type )
+			{
+				case CKEDITOR.STYLE_INLINE :
+				case CKEDITOR.STYLE_BLOCK :
+					return true;
+
+				case CKEDITOR.STYLE_OBJECT :
+					return elementPath.lastElement.getAscendant( this.element, true );
+			}
 		},
 
@@ -200,7 +252,7 @@
 
 						var elementAttr = element.getAttribute( attName ) || '';
-						if ( attribs[ attName ] ==
-							 ( attName == 'style' ?
-							   normalizeCssText( elementAttr, false ) : elementAttr  ) )
+						if ( attName == 'style' ?
+							compareCssText( attribs[ attName ], normalizeCssText( elementAttr, false ) )
+							: attribs[ attName ] == elementAttr  )
 						{
 							if ( !fullMatch )
@@ -261,6 +313,6 @@
 
 		// Builds the StyleText.
-
-		var stylesText = ( styleDefinition.attributes && styleDefinition.attributes[ 'style' ] ) || '';
+		var stylesText = ( styleDefinition.attributes && styleDefinition.attributes[ 'style' ] ) || '',
+				specialStylesText = '';
 
 		if ( stylesText.length )
@@ -268,5 +320,14 @@
 
 		for ( var style in stylesDef )
-			stylesText += ( style + ':' + stylesDef[ style ] ).replace( semicolonFixRegex, ';' );
+		{
+			var styleVal = stylesDef[ style ],
+					text = ( style + ':' + styleVal ).replace( semicolonFixRegex, ';' );
+
+			// Some browsers don't support 'inherit' property value, leave them intact. (#5242)
+			if ( styleVal == 'inherit' )
+				specialStylesText += text;
+			else
+				stylesText += text;
+		}
 
 		// Browsers make some changes to the style when applying them. So, here
@@ -275,4 +336,6 @@
 			stylesText = normalizeCssText( stylesText );
 
+		stylesText += specialStylesText;
+
 		// Return it, saving it to the next request.
 		return ( styleDefinition._ST = stylesText );
@@ -310,4 +373,10 @@
 		range.enlarge( CKEDITOR.ENLARGE_ELEMENT );
 		range.trim();
+
+		// Remove all style conflictions within the range,
+		// e.g. style="color:red" is conflicting with style="color:blue".
+		var enlargedBookmark = range.createBookmark();
+		this.removeConflictsFromRange( range );
+		range.moveToBookmark( enlargedBookmark );
 
 		// Get the first node to be processed and the last, which concludes the
@@ -350,8 +419,4 @@
 
 		var styleRange;
-
-		// Indicates that that some useful inline content has been found, so
-		// the style should be applied.
-		var hasContents;
 
 		while ( currentNode )
@@ -425,6 +490,4 @@
 								applyStyle = true;
 
-							if ( !hasContents )
-								hasContents = ( nodeType != CKEDITOR.NODE_TEXT || (/[^\s\ufeff]/).test( currentNode.getText() ) );
 						}
 					}
@@ -440,5 +503,5 @@
 
 			// Apply the style if we have something to which apply it.
-			if ( applyStyle && hasContents && styleRange && !styleRange.collapsed )
+			if ( applyStyle && styleRange && !styleRange.collapsed )
 			{
 				// Build the style element, based on the style object definition.
@@ -480,8 +543,4 @@
 					// Move the contents of the range to the style element.
 					styleRange.extractContents().appendTo( styleNode );
-
-					// Here we do some cleanup, removing all duplicated
-					// elements from the style element.
-					removeFromInsideElement( this, styleNode );
 
 					// Insert it into the range position (it is collapsed after
@@ -511,4 +570,6 @@
 		marker && marker.remove();
 		range.moveToBookmark( bookmark );
+		// Minimize the result range to exclude empty text nodes. (#5374)
+		range.shrink( CKEDITOR.SHRINK_TEXT );
 	}
 
@@ -675,4 +736,11 @@
 }
 
+	function applyObjectStyle( range )
+	{
+		var root = range.getCommonAncestor( true, true ),
+				element = root.getAscendant( this.element, true );
+		element && setupElement( element, this );
+	}
+
 	function applyBlockStyle( range )
 	{
@@ -773,5 +841,5 @@
 
 		var pres = [];
-		splitedHtml.replace( /<pre>([\s\S]*?)<\/pre>/gi, function( match, preContent ){
+		splitedHtml.replace( /<pre\b.*?>([\s\S]*?)<\/pre>/gi, function( match, preContent ){
 			pres.push( preContent );
 		} );
@@ -874,59 +942,32 @@
 	{
 		var def = style._.definition,
-			attributes = def.attributes,
+			attributes = CKEDITOR.tools.extend( {}, def.attributes, getOverrides( style )[ element.getName() ] ),
 			styles = def.styles,
-			overrides = getOverrides( style );
-
-		function removeAttrs()
-		{
-			for ( var attName in attributes )
-			{
-				// The 'class' element value must match (#1318).
-				if ( attName == 'class' && element.getAttribute( attName ) != attributes[ attName ] )
-					continue;
-				element.removeAttribute( attName );
-			}
-		}
+			// If the style is only about the element itself, we have to remove the element.
+			removeEmpty = CKEDITOR.tools.isEmpty( attributes ) && CKEDITOR.tools.isEmpty( styles );
 
 		// Remove definition attributes/style from the elemnt.
-		removeAttrs();
+		for ( var attName in attributes )
+		{
+			// The 'class' element value must match (#1318).
+			if ( ( attName == 'class' || style._.definition.fullMatch )
+				&& element.getAttribute( attName ) != normalizeProperty( attName, attributes[ attName ] ) )
+				continue;
+			removeEmpty = element.hasAttribute( attName );
+			element.removeAttribute( attName );
+		}
+
 		for ( var styleName in styles )
+		{
+			// Full match style insist on having fully equivalence. (#5018)
+			if ( style._.definition.fullMatch
+				&& element.getStyle( styleName ) != normalizeProperty( styleName, styles[ styleName ], true ) )
+				continue;
+
+			removeEmpty = removeEmpty || !!element.getStyle( styleName );
 			element.removeStyle( styleName );
-
-		// Now remove override styles on the element.
-		attributes = overrides[ element.getName() ];
-		if ( attributes )
-			removeAttrs();
-		removeNoAttribsElement( element );
-	}
-
-	// Removes a style from inside an element.
-	function removeFromInsideElement( style, element )
-	{
-		var def = style._.definition,
-			attribs = def.attributes,
-			styles = def.styles,
-			overrides = getOverrides( style );
-
-		var innerElements = element.getElementsByTag( style.element );
-
-		for ( var i = innerElements.count(); --i >= 0 ; )
-			removeFromElement( style,  innerElements.getItem( i ) );
-
-		// Now remove any other element with different name that is
-		// defined to be overriden.
-		for ( var overrideElement in overrides )
-		{
-			if ( overrideElement != style.element )
-			{
-				innerElements = element.getElementsByTag( overrideElement ) ;
-				for ( i = innerElements.count() - 1 ; i >= 0 ; i-- )
-				{
-					var innerElement = innerElements.getItem( i );
-					removeOverrides( innerElement, overrides[ overrideElement ] ) ;
-				}
-			}
-		}
-
+		}
+
+		removeEmpty && removeNoAttribsElement( element );
 	}
 
@@ -1188,4 +1229,11 @@
 	}
 
+	function normalizeProperty( name, value, isStyle )
+	{
+		var temp = new CKEDITOR.dom.element( 'span' );
+		temp [ isStyle ? 'setStyle' : 'setAttribute' ]( name, value );
+		return temp[ isStyle ? 'getStyle' : 'getAttribute' ]( name );
+	}
+
 	function normalizeCssText( unparsedCssText, nativeNormalize )
 	{
@@ -1210,4 +1258,36 @@
 	}
 
+	// Turn inline style text properties into one hash.
+	function parseStyleText( styleText )
+	{
+		var retval = {};
+		styleText
+		   .replace( /&quot;/g, '"' )
+		   .replace( /\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g, function( match, name, value )
+		{
+			retval[ name ] = value;
+		} );
+		return retval;
+	}
+
+	function compareCssText( source, target )
+	{
+		typeof source == 'string' && ( source = parseStyleText( source ) );
+		typeof target == 'string' && ( target = parseStyleText( target ) );
+		for( var name in source )
+		{
+			// Value 'inherit'  is treated as a wildcard,
+			// which will match any value.
+			if ( !( name in target &&
+					( target[ name ] == source[ name ]
+						|| source[ name ] == 'inherit'
+						|| target[ name ] == 'inherit' ) ) )
+			{
+				return false;
+			}
+		}
+		return true;
+	}
+
 	function applyStyle( document, remove )
 	{
@@ -1249,2 +1329,82 @@
 
 CKEDITOR.stylesSet = new CKEDITOR.resourceManager( '', 'stylesSet' );
+
+// Backward compatibility (#5025).
+CKEDITOR.addStylesSet = CKEDITOR.tools.bind( CKEDITOR.stylesSet.add, CKEDITOR.stylesSet );
+CKEDITOR.loadStylesSet = function( name, url, callback )
+	{
+		CKEDITOR.stylesSet.addExternal( name, url, '' );
+		CKEDITOR.stylesSet.load( name, callback );
+	};
+
+
+/**
+ * Gets the current styleSet for this instance
+ * @param {Function} The function to be called with the styles data.
+ * @example
+ * editor.getStylesSet( function( stylesDefinitions ) {} );
+ */
+CKEDITOR.editor.prototype.getStylesSet = function( callback )
+{
+	if ( !this._.stylesDefinitions )
+	{
+		var editor = this,
+			// Respect the backwards compatible definition entry
+			configStyleSet = editor.config.stylesCombo_stylesSet || editor.config.stylesSet || 'default';
+
+		// #5352 Allow to define the styles directly in the config object
+		if ( configStyleSet instanceof Array )
+		{
+			editor._.stylesDefinitions = configStyleSet;
+			callback( configStyleSet );
+			return;
+		}
+
+		var	partsStylesSet = configStyleSet.split( ':' ),
+			styleSetName = partsStylesSet[ 0 ],
+			externalPath = partsStylesSet[ 1 ],
+			pluginPath = CKEDITOR.plugins.registered.styles.path;
+
+		CKEDITOR.stylesSet.addExternal( styleSetName,
+				externalPath ?
+					partsStylesSet.slice( 1 ).join( ':' ) :
+					pluginPath + 'styles/' + styleSetName + '.js', '' );
+
+		CKEDITOR.stylesSet.load( styleSetName, function( stylesSet )
+			{
+				editor._.stylesDefinitions = stylesSet[ styleSetName ];
+				callback( editor._.stylesDefinitions );
+			} ) ;
+	}
+	else
+		callback( this._.stylesDefinitions );
+};
+
+/**
+ * The "styles definition set" to use in the editor. They will be used in the
+ * styles combo and the Style selector of the div container. <br>
+ * The styles may be defined in the page containing the editor, or can be
+ * loaded on demand from an external file. In the second case, if this setting
+ * contains only a name, the styles definition file will be loaded from the
+ * "styles" folder inside the styles plugin folder.
+ * Otherwise, this setting has the "name:url" syntax, making it
+ * possible to set the URL from which loading the styles file.<br>
+ * Previously this setting was available as config.stylesCombo_stylesSet<br>
+ * @type String|Array
+ * @default 'default'
+ * @since 3.3
+ * @example
+ * // Load from the styles' styles folder (mystyles.js file).
+ * config.stylesSet = 'mystyles';
+ * @example
+ * // Load from a relative URL.
+ * config.stylesSet = 'mystyles:/editorstyles/styles.js';
+ * @example
+ * // Load from a full URL.
+ * config.stylesSet = 'mystyles:http://www.example.com/editorstyles/styles.js';
+ * @example
+ * // Load from a list of definitions.
+ * config.stylesSet = [
+ *  { name : 'Strong Emphasis', element : 'strong' },
+ * { name : 'Emphasis', element : 'em' }, ... ];
+ */
Index: CKEditor/branches/versions/3.3.x/_source/plugins/styles/styles/default.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/styles/styles/default.js	(revision 5306)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/styles/styles/default.js	(revision 5306)
@@ -0,0 +1,88 @@
+/*
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+CKEDITOR.stylesSet.add( 'default',
+[
+	/* Block Styles */
+
+	// These styles are already available in the "Format" combo, so they are
+	// not needed here by default. You may enable them to avoid placing the
+	// "Format" combo in the toolbar, maintaining the same features.
+	/*
+	{ name : 'Paragraph'		, element : 'p' },
+	{ name : 'Heading 1'		, element : 'h1' },
+	{ name : 'Heading 2'		, element : 'h2' },
+	{ name : 'Heading 3'		, element : 'h3' },
+	{ name : 'Heading 4'		, element : 'h4' },
+	{ name : 'Heading 5'		, element : 'h5' },
+	{ name : 'Heading 6'		, element : 'h6' },
+	{ name : 'Preformatted Text', element : 'pre' },
+	{ name : 'Address'			, element : 'address' },
+	*/
+
+	{ name : 'Blue Title'		, element : 'h3', styles : { 'color' : 'Blue' } },
+	{ name : 'Red Title'		, element : 'h3', styles : { 'color' : 'Red' } },
+
+	/* Inline Styles */
+
+	// These are core styles available as toolbar buttons. You may opt enabling
+	// some of them in the Styles combo, removing them from the toolbar.
+	/*
+	{ name : 'Strong'			, element : 'strong', overrides : 'b' },
+	{ name : 'Emphasis'			, element : 'em'	, overrides : 'i' },
+	{ name : 'Underline'		, element : 'u' },
+	{ name : 'Strikethrough'	, element : 'strike' },
+	{ name : 'Subscript'		, element : 'sub' },
+	{ name : 'Superscript'		, element : 'sup' },
+	*/
+
+	{ name : 'Marker: Yellow'	, element : 'span', styles : { 'background-color' : 'Yellow' } },
+	{ name : 'Marker: Green'	, element : 'span', styles : { 'background-color' : 'Lime' } },
+
+	{ name : 'Big'				, element : 'big' },
+	{ name : 'Small'			, element : 'small' },
+	{ name : 'Typewriter'		, element : 'tt' },
+
+	{ name : 'Computer Code'	, element : 'code' },
+	{ name : 'Keyboard Phrase'	, element : 'kbd' },
+	{ name : 'Sample Text'		, element : 'samp' },
+	{ name : 'Variable'			, element : 'var' },
+
+	{ name : 'Deleted Text'		, element : 'del' },
+	{ name : 'Inserted Text'	, element : 'ins' },
+
+	{ name : 'Cited Work'		, element : 'cite' },
+	{ name : 'Inline Quotation'	, element : 'q' },
+
+	{ name : 'Language: RTL'	, element : 'span', attributes : { 'dir' : 'rtl' } },
+	{ name : 'Language: LTR'	, element : 'span', attributes : { 'dir' : 'ltr' } },
+
+	/* Object Styles */
+
+	{
+		name : 'Image on Left',
+		element : 'img',
+		attributes :
+		{
+			'style' : 'padding: 5px; margin-right: 5px',
+			'border' : '2',
+			'align' : 'left'
+		}
+	},
+
+	{
+		name : 'Image on Right',
+		element : 'img',
+		attributes :
+		{
+			'style' : 'padding: 5px; margin-left: 5px',
+			'border' : '2',
+			'align' : 'right'
+		}
+	},
+
+	{ name : 'Borderless Table', element : 'table', styles: { 'border-style': 'hidden', 'background-color' : '#E6E6FA' } },
+	{ name : 'Square Bulleted List', element : 'ul', styles : { 'list-style-type' : 'square' } }
+]);
Index: CKEditor/branches/versions/3.3.x/_source/plugins/stylescombo/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/stylescombo/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/stylescombo/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -6,6 +6,4 @@
 (function()
 {
-	var stylesManager;
-
 	CKEDITOR.plugins.add( 'stylescombo',
 	{
@@ -16,28 +14,36 @@
 			var config = editor.config,
 				lang = editor.lang.stylesCombo,
-				pluginPath = this.path,
-				styles;
-
-			if ( !stylesManager )
+				styles = {},
+				stylesList = [];
+
+			function loadStylesSet( callback )
 			{
-				stylesManager = CKEDITOR.stylesSet;
-
-				// Backward compatibilities (#5025).
-				CKEDITOR.addStylesSet = CKEDITOR.tools.bind( stylesManager.add, stylesManager );
-				CKEDITOR.loadStylesSet = function( name, url, callback )
-					{
-						stylesManager.addExternal( name, url, '' );
-						CKEDITOR.stylesSet.load( name, callback );
-					};
+				editor.getStylesSet( function( stylesDefinitions )
+				{
+					if ( !stylesList.length )
+					{
+						var style,
+							styleName;
+
+						// Put all styles into an Array.
+						for ( var i = 0 ; i < stylesDefinitions.length ; i++ )
+						{
+							var styleDefinition = stylesDefinitions[ i ];
+
+							styleName = styleDefinition.name;
+
+							style = styles[ styleName ] = new CKEDITOR.style( styleDefinition );
+							style._name = styleName;
+
+							stylesList.push( style );
+						}
+
+						// Sorts the Array, so the styles get grouped by type.
+						stylesList.sort( sortStyles );
+					}
+
+					callback && callback();
+				});
 			}
-
-			var comboStylesSet = config.stylesCombo_stylesSet.split( ':' ),
-				styleSetName = comboStylesSet[ 0 ],
-				externalPath = comboStylesSet[ 1 ];
-
-			stylesManager.addExternal( styleSetName,
-					externalPath ?
-						comboStylesSet.slice( 1 ).join( ':' ) :
-						pluginPath + 'styles/' + styleSetName + '.js', '' );
 
 			editor.ui.addRichCombo( 'Styles',
@@ -58,34 +64,12 @@
 						var combo = this;
 
-						CKEDITOR.stylesSet.load( styleSetName, function( stylesSet )
+						loadStylesSet( function()
 							{
-								var stylesDefinitions = stylesSet[ styleSetName ],
-									style,
-									styleName,
-									stylesList = [];
-
-								styles = {};
-
-								// Put all styles into an Array.
-								for ( var i = 0 ; i < stylesDefinitions.length ; i++ )
-								{
-									var styleDefinition = stylesDefinitions[ i ];
-
-									styleName = styleDefinition.name;
-
-									style = styles[ styleName ] = new CKEDITOR.style( styleDefinition );
-									style._name = styleName;
-
-									stylesList.push( style );
-								}
-
-								// Sorts the Array, so the styles get grouped
-								// by type.
-								stylesList.sort( sortStyles );
+								var style, styleName;
 
 								// Loop over the Array, adding all items to the
 								// combo.
 								var lastType;
-								for ( i = 0 ; i < stylesList.length ; i++ )
+								for ( var i = 0 ; i < stylesList.length ; i++ )
 								{
 									style = stylesList[ i ];
@@ -119,13 +103,4 @@
 						var style = styles[ value ],
 							selection = editor.getSelection();
-
-						if ( style.type == CKEDITOR.STYLE_OBJECT )
-						{
-							var element = selection.getSelectedElement();
-							if ( element )
-								style.applyToObject( element );
-
-							return;
-						}
 
 						var elementPath = new CKEDITOR.dom.elementPath( selection.getStartElement() );
@@ -180,5 +155,4 @@
 
 						var element = selection.getSelectedElement(),
-							elementName = element && element.getName(),
 							elementPath = new CKEDITOR.dom.elementPath( element || selection.getStartElement() );
 
@@ -191,23 +165,13 @@
 								type = style.type;
 
-							if ( type == CKEDITOR.STYLE_OBJECT )
+							if ( style.checkActive( elementPath ) )
+								this.mark( name );
+							else if ( type == CKEDITOR.STYLE_OBJECT && !style.checkApplicable( elementPath ) )
 							{
-								if ( element && style.element == elementName )
-								{
-									if ( style.checkElementRemovable( element, true ) )
-										this.mark( name );
-
-									counter[ type ]++;
-								}
-								else
-									this.hideItem( name );
+								this.hideItem( name );
+								counter[ type ]--;
 							}
-							else
-							{
-								if ( style.checkActive( elementPath ) )
-									this.mark( name );
-
-								counter[ type ]++;
-							}
+
+							counter[ type ]++;
 						}
 
@@ -222,4 +186,6 @@
 					}
 				});
+
+			editor.on( 'instanceReady', function() { loadStylesSet(); } );
 		}
 	});
@@ -269,24 +235,2 @@
 	}
 })();
-
-/**
- * The "styles definition set" to load into the styles combo. The styles may
- * be defined in the page containing the editor, or can be loaded on demand
- * from an external file when opening the styles combo for the fist time. In
- * the second case, if this setting contains only a name, the styles definition
- * file will be loaded from the "styles" folder inside the stylescombo plugin
- * folder. Otherwise, this setting has the "name:url" syntax, making it
- * possible to set the URL from which loading the styles file.
- * @type string
- * @default 'default'
- * @example
- * // Load from the stylescombo styles folder (mystyles.js file).
- * config.stylesCombo_stylesSet = 'mystyles';
- * @example
- * // Load from a relative URL.
- * config.stylesCombo_stylesSet = 'mystyles:/editorstyles/styles.js';
- * @example
- * // Load from a full URL.
- * config.stylesCombo_stylesSet = 'mystyles:http://www.example.com/editorstyles/styles.js';
- */
-CKEDITOR.config.stylesCombo_stylesSet = 'default';
Index: CKEditor/branches/versions/3.3.x/_source/plugins/table/dialogs/table.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/table/dialogs/table.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/table/dialogs/table.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -569,4 +569,6 @@
 										if ( this.getValue() )
 											selectedTable.setAttribute( 'summary', this.getValue() );
+										else
+											selectedTable.removeAttribute( 'summary' );
 									}
 								}
Index: CKEditor/branches/versions/3.3.x/_source/plugins/table/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/table/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/table/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/tabletools/dialogs/tableCell.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/tabletools/dialogs/tableCell.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/tabletools/dialogs/tableCell.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/tabletools/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/tabletools/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/tabletools/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/templates/dialogs/templates.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/templates/dialogs/templates.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/templates/dialogs/templates.js	(revision 5306)
@@ -101,8 +101,8 @@
 			{
 				var target = evt.data.getTarget(),
-					position = listContainer.getPosition( target );
+						onList = listContainer.equals( target );
 
 				// Keyboard navigation for template list.
-				if ( position > CKEDITOR.POSITION_CONTAINS )
+				if (  onList || listContainer.contains( target ) )
 				{
 					var keystroke = evt.data.getKeystroke(),
@@ -112,17 +112,23 @@
 					if ( items )
 					{
-						switch ( keystroke )
-						{
-							case 40 :					// ARROW-DOWN
-								focusItem = target.getNext();
-								break;
-
-							case 38 :					// ARROW-UP
-								focusItem = target.getPrevious();
-								break;
-
-							case 13 :					// ENTER
-							case 32 :					// SPACE
-								target.fire( 'click' );
+						// Focus not yet onto list items?
+						if ( onList )
+							focusItem = items.getItem( 0 );
+						else
+						{
+							switch ( keystroke )
+							{
+								case 40 :					// ARROW-DOWN
+									focusItem = target.getNext();
+									break;
+
+								case 38 :					// ARROW-UP
+									focusItem = target.getPrevious();
+									break;
+
+								case 13 :					// ENTER
+								case 32 :					// SPACE
+									target.fire( 'click' );
+							}
 						}
 
@@ -169,15 +175,10 @@
 										id : "templatesList",
 										type : 'html',
-										focus: function()
-										{
-											// Move focus to the first list item if available.
-											try { this.getElement().getElementsByTag( 'a' ).getItem( 0 ).focus(); }
-											catch( er ){}
-										},
+										focus: true,
 										html :
 											'<div class="cke_tpl_list" tabIndex="-1" role="listbox" aria-labelledby="cke_tpl_list_label">' +
 												'<div class="cke_tpl_loading"><span></span></div>' +
 											'</div>' +
-											'<span class="cke_voice_label" id="cke_tpl_list_label">' + editor.lang.common.options+ '</span>'
+											'<span class="cke_voice_label" id="cke_tpl_list_label">' + editor.lang.templates.options+ '</span>'
 									},
 									{
Index: CKEditor/branches/versions/3.3.x/_source/plugins/templates/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/templates/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/templates/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/templates/templates/default.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/templates/templates/default.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/templates/templates/default.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -65,5 +65,5 @@
 							'Title goes here' +
 						'</h3>' +
-						'<table style="float: right" cellspacing="0" cellpadding="0" style="width:150px" border="1">' +
+						'<table style="width:150px;float: right" cellspacing="0" cellpadding="0" border="1">' +
 							'<caption style="border:solid 1px black">' +
 								'<strong>Table title</strong>' +
Index: CKEditor/branches/versions/3.3.x/_source/plugins/toolbar/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/toolbar/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/toolbar/plugin.js	(revision 5306)
@@ -61,12 +61,13 @@
 			{
 				var next, nextToolGroup, groupItemsCount;
+				var rtl = editor.lang.dir == 'rtl';
 
 				switch ( keystroke )
 				{
-					case 39 :					// RIGHT-ARROW
+					case rtl ? 37 : 39 :					// RIGHT-ARROW
 					case 9 :					// TAB
 						do
 						{
-							// Look for the previous item in the toolbar.
+							// Look for the next item in the toolbar.
 							next = item.next;
 
@@ -100,5 +101,5 @@
 						return false;
 
-					case 37 :					// LEFT-ARROW
+					case rtl ? 39 : 37 :					// LEFT-ARROW
 					case CKEDITOR.SHIFT + 9 :	// SHIFT + TAB
 						do
@@ -283,4 +284,8 @@
 								{
 									editor.execCommand( 'toolbarCollapse' );
+								} );
+
+							editor.on( 'destroy', function () {
+									CKEDITOR.tools.removeFunction( collapserFn );
 								} );
 
Index: CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/dialogs/uicolor.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/dialogs/uicolor.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/dialogs/uicolor.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/lang/en.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/lang/en.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/lang/en.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/yui/yui.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/yui/yui.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/uicolor/yui/yui.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*jsl:ignoreall*/
+﻿/*jsl:ignoreall*/
 /*
 Copyright (c) 2009, Yahoo! Inc. All rights reserved.
Index: CKEditor/branches/versions/3.3.x/_source/plugins/undo/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/undo/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/undo/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/wsc/dialogs/wsc.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/wsc/dialogs/wsc.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/wsc/dialogs/wsc.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/wsc/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/wsc/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/wsc/plugin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/wysiwygarea/plugin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/wysiwygarea/plugin.js	(revision 5306)
@@ -162,4 +162,15 @@
 	}
 
+	function restoreSelection( selection )
+	{
+		if ( selection.isLocked )
+		{
+			selection.unlock();
+			setTimeout( function() { selection.lock(); }, 0 );
+		}
+	}
+
+	var isNotWhitespace = CKEDITOR.dom.walker.whitespaces( true );
+
 	/**
 	 *  Auto-fixing block-less content by wrapping paragraph (#3190), prevent
@@ -184,4 +195,6 @@
 		{
 			restoreDirty( editor );
+			CKEDITOR.env.ie && restoreSelection( selection );
+
 			var fixedBlock = range.fixBlock( true,
 					editor.config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p'  );
@@ -200,5 +213,4 @@
 				var previousElement = fixedBlock.getPrevious( isNotWhitespace ),
 					nextElement = fixedBlock.getNext( isNotWhitespace );
-
 
 				if ( previousElement && previousElement.getName
@@ -212,9 +224,4 @@
 				}
 			}
-
-			range.select();
-			// Notify non-IE that selection has changed.
-			if ( !CKEDITOR.env.ie )
-				editor.selectionChange();
 		}
 
@@ -222,13 +229,33 @@
 		// blocks (e.g. table, list, pre) at the end of document, make this happen by
 		// place a bogus node there, which would be later removed by dataprocessor.
-		var lastNode = body.getLast( CKEDITOR.dom.walker.whitespaces( true ) );
-		if ( lastNode && lastNode.getName && ( lastNode.getName() in nonExitableElementNames ) )
+		var walkerRange = new CKEDITOR.dom.range( editor.document ),
+			walker = new CKEDITOR.dom.walker( walkerRange );
+		walkerRange.selectNodeContents( body );
+		walker.evaluator = function( node )
+		{
+			return node.type == CKEDITOR.NODE_ELEMENT && ( node.getName() in nonExitableElementNames );
+		};
+		walker.guard = function( node, isMoveout )
+		{
+			return !( ( node.type == CKEDITOR.NODE_TEXT && isNotWhitespace( node ) ) || isMoveout );
+		};
+
+		if ( walker.previous() )
 		{
 			restoreDirty( editor );
+			CKEDITOR.env.ie && restoreSelection( selection );
+
+			var paddingBlock;
+			if ( enterMode != CKEDITOR.ENTER_BR )
+				paddingBlock = body.append( new CKEDITOR.dom.element( enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ) );
+			else
+				paddingBlock = body;
+
 			if ( !CKEDITOR.env.ie )
-				body.appendBogus();
-			else
-				body.append( editor.document.createText( '\xa0' ) );
+				paddingBlock.appendBogus();
 		}
+
+		range.select();
+		editor.selectionChange();
 	}
 
@@ -278,9 +305,5 @@
 							( isCustomDomain ? ( 'document.domain="' + document.domain + '";' ) : '' ) +
 
-							// With FF, it's better to load the data on
-							// iframe.load. (#3894,#4058)
-							// But in FF, we still need the open()-close() call
-							// to avoid HTTPS warnings.
-							( CKEDITOR.env.gecko ? '' : ( 'parent.CKEDITOR.tools.callFunction(' + setDataFn + ',document);' ) ) +
+							( ( 'parent.CKEDITOR.tools.callFunction(' + setDataFn + ',document);' ) ) +
 
 							'document.close();';
@@ -289,6 +312,9 @@
   							' style="width:100%;height:100%"' +
   							' frameBorder="0"' +
-  							' src="javascript:void(function(){' + encodeURIComponent( srcScript ) + '}())"' +
-  							' tabIndex="' + editor.tabIndex + '"' +
+  							' title="' + frameLabel + '"' +
+							// With FF, the 'src' attribute should be left empty to
+							// trigger iframe's 'load' event.
+  							' src="' + ( CKEDITOR.env.gecko ? '' : 'javascript:void(function(){' + encodeURIComponent( srcScript ) + '}())' ) + '"' +
+							' tabIndex="' + editor.tabIndex + '"' +
   							' allowTransparency="true"' +
   							'></iframe>' );
@@ -426,4 +452,5 @@
 										&& first.hasAttribute( '_moz_editor_bogus_node' ) )
 									{
+										restoreDirty( editor );
 										var keyEventSimulate = domDocument.$.createEvent( "KeyEvents" );
 										keyEventSimulate.initKeyEvent( 'keypress', true, true, domWindow.$, false,
@@ -652,4 +679,7 @@
 
 								CKEDITOR._[ 'contentDomReady' + editor.name ] = contentDomReady;
+
+								// The iframe is recreated on each call of setData, so we need to clear DOM objects
+								this.onDispose();
 								createIFrame( data );
 							},
@@ -689,6 +719,22 @@
 							},
 
+							onDispose : function()
+							{
+								if ( !editor.document )
+									return;
+
+								editor.document.getDocumentElement().clearCustomData();
+								editor.document.getBody().clearCustomData();
+
+								editor.window.clearCustomData();
+								editor.document.clearCustomData();
+
+								iframe.clearCustomData();
+							},
+
 							unload : function( holderElement )
 							{
+								this.onDispose();
+
 								editor.window = editor.document = iframe = mainElement = isPendingFocus = null;
 
@@ -703,23 +749,4 @@
 								{
 									editor.window.focus();
-
-									// Force the selection to happen, in this way
-									// we guarantee the focus will be there. (#4848)
-									if ( CKEDITOR.env.ie )
-									{
-										try
-										{
-											var sel = editor.getSelection();
-											sel = sel && sel.getNative();
-											var range = sel && sel.type && sel.createRange();
-											if ( range )
-											{
-													sel.empty();
-													range.select();
-											}
-										}
-										catch (e) {}
-									}
-
 									editor.selectionChange();
 								}
@@ -758,4 +785,8 @@
 							editor.focus();
 						} );
+				} );
+				editor.on( 'destroy', function()
+				{
+					ieFocusGrabber.clearCustomData();
 				} );
 			}
Index: CKEditor/branches/versions/3.3.x/_source/skins/kama/dialog.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/kama/dialog.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/kama/dialog.css	(revision 5306)
@@ -323,4 +323,5 @@
 	_background: none;
 	padding: 5px 0;
+	text-align: center;
 }
 
@@ -432,4 +433,6 @@
 	display: inline-block;
 	cursor: default;
+	min-width: 60px;
+	+margin: 2px 0; /* IE7 */
 }
 
@@ -693,4 +696,11 @@
 	background-color : white;
 }
+
+/* Fix iframedialog's height doesn't stretch to 100% #4863.*/
+.cke_skin_kama .cke_browser_iequirks .cke_dialog_page_contents
+{
+	_position: absolute;
+}
+
 .cke_skin_kama .cke_dialog  #ImagePreviewLoader
 {
Index: CKEditor/branches/versions/3.3.x/_source/skins/kama/editor.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/kama/editor.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/kama/editor.css	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/skins/kama/elementspath.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/kama/elementspath.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/kama/elementspath.css	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/skins/kama/menu.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/kama/menu.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/kama/menu.css	(revision 5306)
@@ -32,18 +32,4 @@
 {
 	border: 2px solid;
-}
-
-.cke_skin_kama .cke_menuitem a.cke_disabled:hover,
-.cke_skin_kama .cke_menuitem a.cke_disabled:focus,
-.cke_skin_kama .cke_menuitem a.cke_disabled:active
-{
-	background-color: transparent !important;
-}
-
-.cke_hc .cke_menuitem a.cke_disabled:hover,
-.cke_hc .cke_menuitem a.cke_disabled:focus,
-.cke_hc .cke_menuitem a.cke_disabled:active
-{
-	border-width: 0px;
 }
 
Index: CKEditor/branches/versions/3.3.x/_source/skins/kama/presets.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/kama/presets.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/kama/presets.css	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/skins/kama/reset.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/kama/reset.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/kama/reset.css	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/skins/kama/skin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/kama/skin.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/kama/skin.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/skins/kama/toolbar.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/kama/toolbar.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/kama/toolbar.css	(revision 5306)
@@ -23,4 +23,6 @@
 {
 	clear: both;
+	/* Define the padding-bottom otherwise the collapser button will not be clickable #4932*/
+	padding-bottom: 1px;
 }
 
@@ -172,6 +174,6 @@
 }
 
-.cke_skin_kama .cke_button a.cke_disabled,
-.cke_skin_kama .cke_browser_ie a:hover.cke_button .cke_disabled
+.cke_skin_kama .cke_button a.cke_disabled *,
+.cke_skin_kama .cke_browser_ie a:hover.cke_button .cke_disabled *
 {
 	filter: alpha(opacity=30); /* IE */
@@ -179,6 +181,6 @@
 }
 
-.cke_skin_kama .cke_hc .cke_button a.cke_disabled,
-.cke_skin_kama .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled
+.cke_skin_kama .cke_hc .cke_button a.cke_disabled *,
+.cke_skin_kama .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled *
 {
 	filter: alpha(opacity=60);
@@ -198,4 +200,11 @@
 }
 
+.cke_skin_kama .cke_button a:hover,
+.cke_skin_kama .cke_button a:focus,
+.cke_skin_kama .cke_button a:active	/* IE */
+{
+	background-color: #dff1ff;
+}
+
 .cke_skin_kama .cke_button a:hover.cke_on,
 .cke_skin_kama .cke_button a:focus.cke_on,
@@ -205,17 +214,7 @@
 }
 
-.cke_skin_kama .cke_button a:hover.cke_off,
-.cke_skin_kama .cke_button a:focus.cke_off,
-.cke_skin_kama .cke_button a:active.cke_off	/* IE */
-{
-	background-color: #dff1ff;
-}
-
-.cke_skin_kama .cke_hc .cke_button a:hover.cke_on,
-.cke_skin_kama .cke_hc .cke_button a:focus.cke_on,
-.cke_skin_kama .cke_hc .cke_button a:active.cke_on,	/* IE */
-.cke_skin_kama .cke_hc .cke_button a:hover.cke_off,
-.cke_skin_kama .cke_hc .cke_button a:focus.cke_off,
-.cke_skin_kama .cke_hc .cke_button a:active.cke_off	/* IE */
+.cke_skin_kama .cke_hc .cke_button a:hover,
+.cke_skin_kama .cke_hc .cke_button a:focus,
+.cke_skin_kama .cke_hc .cke_button a:active	/* IE */
 {
 	padding: 0 2px !important;
@@ -295,9 +294,4 @@
 }
 
-.cke_skin_kama .cke_hc .cke_button .cke_buttonarrow
-{
-	display: none;
-}
-
 /*** Firefox 2 ***/
 
@@ -414,8 +408,2 @@
 	padding-bottom: 0;
 }
-
-.cke_skin_kama .cke_browser_gecko .cke_toolbox
-{
-	/* Define the padding-bottom otherwise the collapser button will not be clicable in FF */
-	padding-bottom: 1px;
-}
Index: CKEditor/branches/versions/3.3.x/_source/skins/office2003/dialog.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/office2003/dialog.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/office2003/dialog.css	(revision 5306)
@@ -473,5 +473,8 @@
 /* close_button */
 
-.cke_skin_office2003 .cke_dialog .cke_dialog_body .cke_dialog_close_button
+.cke_skin_office2003 a.cke_dialog_close_button,
+.cke_skin_office2003 a:hover.cke_dialog_close_button,
+.cke_skin_office2003 .cke_browser_ie6 a.cke_dialog_close_button,
+.cke_skin_office2003 .cke_browser_ie6 a:hover.cke_dialog_close_button
 {
 	background-image: url(images/sprites.png);
@@ -489,10 +492,10 @@
 }
 
-.cke_skin_office2003 .cke_dialog_close_button span
+.cke_skin_office2003 a.cke_dialog_close_button span
 {
 	display: none;
 }
 
-.cke_skin_office2003 .cke_ltr .cke_dialog_close_button
+.cke_skin_office2003 .cke_ltr a.cke_dialog_close_button
 {
 	right: 10px;
@@ -500,5 +503,6 @@
 }
 
-.cke_skin_office2003 .cke_rtl .cke_dialog_close_button
+.cke_skin_office2003 .cke_rtl a.cke_dialog_close_button,
+.cke_skin_office2003 .cke_rtl a:hover.cke_dialog_close_button
 {
 	left: 10px;
@@ -507,5 +511,6 @@
 }
 
-.cke_skin_office2003 .cke_browser_ie6.cke_rtl .cke_dialog_close_button
+.cke_skin_office2003 .cke_browser_ie6.cke_rtl a.cke_dialog_close_button,
+.cke_skin_office2003 .cke_browser_ie6.cke_rtl a:hover.cke_dialog_close_button
 {
 	position: relative;
@@ -515,10 +520,12 @@
 }
 
-.cke_skin_office2003 .cke_browser_iequirks.cke_rtl.cke_single_page .cke_dialog_close_button
+.cke_skin_office2003 .cke_browser_iequirks.cke_rtl.cke_single_page a.cke_dialog_close_button,
+.cke_skin_office2003 .cke_browser_iequirks.cke_rtl.cke_single_page a:hover.cke_dialog_close_button
 {
 	margin-top: -32px;
 }
 
-.cke_skin_office2003 .cke_browser_iequirks.cke_ltr .cke_dialog_close_button
+.cke_skin_office2003 .cke_browser_iequirks.cke_ltr a.cke_dialog_close_button,
+.cke_skin_office2003 .cke_browser_iequirks.cke_ltr a:hover.cke_dialog_close_button
 {
 	margin-top: 0;
@@ -614,4 +621,11 @@
 	background-color : white;
 }
+
+/* Fix iframedialog's height doesn't stretch to 100% #4863.*/
+.cke_skin_office2003 .cke_browser_iequirks .cke_dialog_page_contents
+{
+	_position: absolute;
+}
+
 .cke_skin_office2003 .cke_dialog  #ImagePreviewLoader
 {
Index: CKEditor/branches/versions/3.3.x/_source/skins/office2003/editor.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/office2003/editor.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/office2003/editor.css	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/skins/office2003/mainui.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/office2003/mainui.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/office2003/mainui.css	(revision 5306)
@@ -73,4 +73,10 @@
 }
 
+.cke_skin_office2003 .cke_browser_iequirks textarea.cke_source 
+{ 
+    /* For IE6+Quirks only */ 
+    _white-space: normal; 
+}
+ 
 .cke_skin_office2003 .cke_resizer
 {
Index: CKEditor/branches/versions/3.3.x/_source/skins/office2003/menu.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/office2003/menu.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/office2003/menu.css	(revision 5306)
@@ -32,18 +32,4 @@
 {
 	border: 2px solid;
-}
-
-.cke_skin_office2003 .cke_menuitem a.cke_disabled:hover,
-.cke_skin_office2003 .cke_menuitem a.cke_disabled:focus,
-.cke_skin_office2003 .cke_menuitem a.cke_disabled:active
-{
-	background-color: transparent !important;
-}
-
-.cke_hc .cke_menuitem a.cke_disabled:hover,
-.cke_hc .cke_menuitem a.cke_disabled:focus,
-.cke_hc .cke_menuitem a.cke_disabled:active
-{
-	border-width: 0px;
 }
 
Index: CKEditor/branches/versions/3.3.x/_source/skins/office2003/presets.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/office2003/presets.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/office2003/presets.css	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/skins/office2003/reset.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/office2003/reset.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/office2003/reset.css	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/skins/office2003/toolbar.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/office2003/toolbar.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/office2003/toolbar.css	(revision 5306)
@@ -16,4 +16,11 @@
 {
 	white-space: normal;
+}
+
+.cke_skin_office2003 .cke_toolbox
+{
+	clear: both;
+	/* Define the padding-bottom otherwise the collapser button will not be clickable #4932*/
+	padding-bottom: 1px;
 }
 
@@ -234,4 +241,5 @@
 	-moz-border-radius: 3px;
 	-webkit-border-radius: 3px;
+	border: 1px solid transparent;
 }
 
@@ -253,5 +261,7 @@
 }
 
-.cke_skin_office2003 .cke_hc .cke_button a.cke_on
+.cke_skin_office2003 .cke_hc .cke_button a:hover,
+.cke_skin_office2003 .cke_hc .cke_button a:focus,
+.cke_skin_office2003 .cke_hc .cke_button a:active	/* IE */
 {
 	padding: 0 2px !important;
@@ -259,20 +269,13 @@
 }
 
-.cke_skin_office2003 .cke_button a.cke_disabled,
-.cke_skin_office2003 .cke_button a:hover.cke_disabled,
-.cke_skin_office2003 .cke_button a:focus.cke_disabled,
-.cke_skin_office2003 .cke_button a:active.cke_disabled
-{
-	border: solid 1px transparent;
+.cke_skin_office2003 .cke_button a.cke_disabled *,
+.cke_skin_office2003 .cke_browser_ie a:hover.cke_button .cke_disabled *
+{
 	filter: alpha(opacity=30); /* IE */
-	opacity : 0.3; /* Safari, Opera and Mozilla */
-	vertical-align: top;
-
-	_border: none;
-	_margin: 3px 1px 1px 1px;
-}
-
-.cke_skin_office2003 .cke_hc .cke_button a.cke_disabled,
-.cke_skin_office2003 .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled
+	opacity: 0.3; /* Safari, Opera and Mozilla */
+}
+
+.cke_skin_office2003 .cke_hc .cke_button a.cke_disabled *,
+.cke_skin_office2003 .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled *
 {
 	filter: alpha(opacity=60);
@@ -280,10 +283,7 @@
 }
 
-.cke_skin_office2003 .cke_button a:hover.cke_on,
-.cke_skin_office2003 .cke_button a:focus.cke_on,
-.cke_skin_office2003 .cke_button a:active.cke_on,	/* IE */
-.cke_skin_office2003 .cke_button a:hover.cke_off,
-.cke_skin_office2003 .cke_button a:focus.cke_off,
-.cke_skin_office2003 .cke_button a:active.cke_off	/* IE */
+.cke_skin_office2003 .cke_button a:hover,
+.cke_skin_office2003 .cke_button a:focus,
+.cke_skin_office2003 .cke_button a:active	/* IE */
 {
 	border: solid 1px #316ac5;
@@ -295,15 +295,4 @@
 	_margin: 2px 0 0 0;
 	padding: 2px 4px;
-}
-
-.cke_skin_office2003 .cke_hc .cke_button a:hover.cke_on,
-.cke_skin_office2003 .cke_hc .cke_button a:focus.cke_on,
-.cke_skin_office2003 .cke_hc .cke_button a:active.cke_on,	/* IE */
-.cke_skin_office2003 .cke_hc .cke_button a:hover.cke_off,
-.cke_skin_office2003 .cke_hc .cke_button a:focus.cke_off,
-.cke_skin_office2003 .cke_hc .cke_button a:active.cke_off	/* IE */
-{
-	padding: 0 2px !important;
-	border-width: 3px;
 }
 
@@ -323,5 +312,4 @@
 	display: none;
 	padding-left: 3px;
-	vertical-align: 3px;
 	cursor: default;
 
Index: CKEditor/branches/versions/3.3.x/_source/skins/v2/dialog.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/v2/dialog.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/v2/dialog.css	(revision 5306)
@@ -469,5 +469,8 @@
 /* close_button */
 
-.cke_skin_v2 .cke_dialog .cke_dialog_body .cke_dialog_close_button
+.cke_skin_v2 a.cke_dialog_close_button,
+.cke_skin_v2 a:hover.cke_dialog_close_button,
+.cke_skin_v2 .cke_browser_ie6 a.cke_dialog_close_button,
+.cke_skin_v2 .cke_browser_ie6 a:hover.cke_dialog_close_button
 {
 	background-image: url(images/sprites.png);
@@ -485,15 +488,16 @@
 }
 
-.cke_skin_v2 .cke_dialog_close_button span
+.cke_skin_v2 a.cke_dialog_close_button span
 {
 	display: none;
 }
 
-.cke_skin_v2 .cke_dialog_close_button:hover
+.cke_skin_v2 a:hover.cke_dialog_close_button
 {
 	background-position: -16px -687px;
 }
 
-.cke_skin_v2 .cke_ltr .cke_dialog_close_button
+.cke_skin_v2 .cke_ltr a.cke_dialog_close_button,
+.cke_skin_v2 .cke_ltr a:hover.cke_dialog_close_button
 {
 	right: 10px;
@@ -501,5 +505,6 @@
 }
 
-.cke_skin_v2 .cke_rtl .cke_dialog_close_button
+.cke_skin_v2 .cke_rtl a.cke_dialog_close_button,
+.cke_skin_v2 .cke_rtl a:hover.cke_dialog_close_button
 {
 	left: 10px;
@@ -508,5 +513,6 @@
 }
 
-.cke_skin_v2 .cke_browser_ie6.cke_rtl .cke_dialog_close_button
+.cke_skin_v2 .cke_browser_ie6.cke_rtl a.cke_dialog_close_button,
+.cke_skin_v2 .cke_browser_ie6.cke_rtl a:hover.cke_dialog_close_button
 {
 	position: relative;
@@ -516,10 +522,12 @@
 }
 
-.cke_skin_v2 .cke_browser_iequirks.cke_rtl.cke_single_page .cke_dialog_close_button
+.cke_skin_v2 .cke_browser_iequirks.cke_rtl.cke_single_page a.cke_dialog_close_button,
+.cke_skin_v2 .cke_browser_iequirks.cke_rtl.cke_single_page a:hover.cke_dialog_close_button
 {
 	margin-top: -32px;
 }
 
-.cke_skin_v2 .cke_browser_iequirks.cke_ltr .cke_dialog_close_button
+.cke_skin_v2 .cke_browser_iequirks.cke_ltr a.cke_dialog_close_button,
+.cke_skin_v2 .cke_browser_iequirks.cke_ltr a:hover.cke_dialog_close_button
 {
 	margin-top: 0;
@@ -615,4 +623,11 @@
 	background-color : white;
 }
+
+/* Fix iframedialog's height doesn't stretch to 100% #4863.*/
+.cke_skin_v2 .cke_browser_iequirks .cke_dialog_page_contents
+{
+	_position: absolute;
+}
+
 .cke_skin_v2 .cke_dialog  #ImagePreviewLoader
 {
Index: CKEditor/branches/versions/3.3.x/_source/skins/v2/editor.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/v2/editor.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/v2/editor.css	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/skins/v2/elementspath.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/v2/elementspath.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/v2/elementspath.css	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/skins/v2/menu.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/v2/menu.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/v2/menu.css	(revision 5306)
@@ -32,19 +32,4 @@
 	border: 2px solid;
 }
-
-.cke_skin_v2 .cke_menuitem a.cke_disabled:hover,
-.cke_skin_v2 .cke_menuitem a.cke_disabled:focus,
-.cke_skin_v2 .cke_menuitem a.cke_disabled:active
-{
-	background-color: transparent !important;
-}
-
-.cke_hc .cke_menuitem a.cke_disabled:hover,
-.cke_hc .cke_menuitem a.cke_disabled:focus,
-.cke_hc .cke_menuitem a.cke_disabled:active
-{
-	border-width: 0px;
-}
-
 
 .cke_skin_v2 .cke_menuitem .cke_icon
Index: CKEditor/branches/versions/3.3.x/_source/skins/v2/presets.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/v2/presets.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/v2/presets.css	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/skins/v2/reset.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/v2/reset.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/v2/reset.css	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/_source/skins/v2/toolbar.css
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/skins/v2/toolbar.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/skins/v2/toolbar.css	(revision 5306)
@@ -16,4 +16,11 @@
 {
 	white-space: normal;
+}
+
+.cke_skin_v2 .cke_toolbox
+{
+	clear: both;
+	/* Define the padding-bottom otherwise the collapser button will not be clickable #4932*/
+	padding-bottom: 1px;
 }
 
@@ -232,21 +239,13 @@
 }
 
-.cke_skin_v2 .cke_hc .cke_button a.cke_on
-{
-	padding: 0 2px !important;
-	border-width: 3px;
-}
-
-.cke_skin_v2 .cke_button a.cke_disabled,
-.cke_skin_v2 .cke_browser_ie a:hover.cke_button .cke_disabled
-{
-	border: solid 1px #efefde;
-	background-color: #efefde;
+.cke_skin_v2 .cke_button a.cke_disabled *,
+.cke_skin_v2 .cke_browser_ie a:hover.cke_button .cke_disabled *
+{
 	filter: alpha(opacity=30); /* IE */
-	opacity : 0.3; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_v2 .cke_hc .cke_button a.cke_disabled,
-.cke_skin_v2 .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled
+	opacity: 0.3; /* Safari, Opera and Mozilla */
+}
+
+.cke_skin_v2 .cke_hc .cke_button a.cke_disabled *,
+.cke_skin_v2 .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled *
 {
 	filter: alpha(opacity=60);
@@ -254,24 +253,16 @@
 }
 
-.cke_skin_v2 .cke_button a:hover.cke_on,
-.cke_skin_v2 .cke_button a:focus.cke_on,
-.cke_skin_v2 .cke_button a:active.cke_on,	/* IE */
-.cke_skin_v2 .cke_button a:hover.cke_off,
-.cke_skin_v2 .cke_button a:focus.cke_off,
-.cke_skin_v2 .cke_button a:active.cke_off	/* IE */
+.cke_skin_v2 .cke_button a:hover,
+.cke_skin_v2 .cke_button a:focus,
+.cke_skin_v2 .cke_button a:active	/* IE */
 {
 	border: solid 1px #316ac5;
 	background-color: #dff1ff;
-	filter: alpha(opacity=100); /* IE */
-	opacity: 1; /* Safari, Opera and Mozilla */
 	padding: 2px 4px;
 }
 
-.cke_skin_v2 .cke_hc .cke_button a:hover.cke_on,
-.cke_skin_v2 .cke_hc .cke_button a:focus.cke_on,
-.cke_skin_v2 .cke_hc .cke_button a:active.cke_on,	/* IE */
-.cke_skin_v2 .cke_hc .cke_button a:hover.cke_off,
-.cke_skin_v2 .cke_hc .cke_button a:focus.cke_off,
-.cke_skin_v2 .cke_hc .cke_button a:active.cke_off	/* IE */
+.cke_skin_v2 .cke_hc .cke_button a:hover,
+.cke_skin_v2 .cke_hc .cke_button a:focus,
+.cke_skin_v2 .cke_hc .cke_button a:active	/* IE */
 {
 	padding: 0 2px !important;
@@ -295,5 +286,4 @@
 	display: none;
 	padding-left: 3px;
-	vertical-align: 3px;
 }
 
Index: CKEditor/branches/versions/3.3.x/_source/themes/default/theme.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/themes/default/theme.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/_source/themes/default/theme.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -230,4 +230,6 @@
 		{
 			var container = editor.container;
+			container.clearCustomData();
+			editor.element.clearCustomData();
 
 			/*
@@ -257,8 +259,7 @@
 
 			if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
-			{
 				editor.element.show();
-				delete editor.element;
-			}
+
+			delete editor.element;
 		}
 	};
Index: CKEditor/branches/versions/3.3.x/ckeditor.pack
===================================================================
--- CKEditor/branches/versions/3.3.x/ckeditor.pack	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/ckeditor.pack	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
  * CKPackager - Sample Package file
  */
Index: CKEditor/branches/versions/3.3.x/ckeditor_basic_source.js
===================================================================
--- CKEditor/branches/versions/3.3.x/ckeditor_basic_source.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/ckeditor_basic_source.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/config.js
===================================================================
--- CKEditor/branches/versions/3.3.x/config.js	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/config.js	(revision 5306)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: CKEditor/branches/versions/3.3.x/contents.css
===================================================================
--- CKEditor/branches/versions/3.3.x/contents.css	(revision 5295)
+++ CKEditor/branches/versions/3.3.x/contents.css	(revision 5306)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
