Index: /CKEditor/branches/versions/3.0.x/CHANGES.html
===================================================================
--- /CKEditor/branches/versions/3.0.x/CHANGES.html	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/CHANGES.html	(revision 4394)
@@ -36,4 +36,60 @@
 	</h1>
 	<h3>
+		CKEditor 3.0.1</h3>
+	<p>
+		New features:</p>
+	<ul>
+		<li><a href="http://dev.fckeditor.net/ticket/4219">#4219</a> : Added fallback mechanism for config.language.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4194">#4194</a> : Added support for using multiple css style sheets within the editor.</li>
+	</ul>
+	<p>
+		Fixed issues:</p>
+	<ul>
+		<li><a href="http://dev.fckeditor.net/ticket/3898">#3898</a> : Added validation for URL value in Image dialog.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3528">#3528</a> : Fixed Context Menu issue when triggered using Shift+F10.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4028">#4028</a> : Maximize control's tool tip was wrong once it is maximized.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4237">#4237</a> : Toolbar is chopped off in Safari browser 3.x.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4241">#4241</a> : Float panels are left on screen while editor is destroyed.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4274">#4274</a> : Double click event is incorrect handled in 'divreplace' sample.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4354">#4354</a> : Fixed TAB key on toolbar to not focus disabled buttons.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3856">#3856</a> : Fixed focus and blur events in source view mode.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3438">#3438</a> : Floating panels are off by (-1px, 0px) in RTL mode.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3370">#3370</a> : Refactored use of CKEDITOR.env.isCustomDomain().</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4230">#4230</a> : HC detection caused js error.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3978">#3978</a> : Fixed setStyle float on IE7 strict.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4262">#4262</a> : Tab and Shift+Tab was not working to cycle through CTRL+SHIFT+F10 context menu in IE.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3633">#3633</a> : Default context menu isn't disabled in toolbar, status bar, panels...</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3897">#3897</a> : Now there is no image previews when the URL is empty in image dialog.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4048">#4048</a> : Context submenu was lacking uiColor.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3568">#3568</a> : Dialogs now select all text when tabbing to text inputs.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3727">#3727</a> : Cell Properties dialog was missing color selection option.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3517">#3517</a> : Fixed "Match cyclic" field in Find & Replace dialog.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4368">#4368</a> : borderColor table cell attribute haven't worked for none-IE</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4203">#4203</a> : In IE quirks mode + toolbar collapsed + source mode editing block height was incorrect.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4387">#4387</a> : Fixed: right clicking in Kama skin can lead to a javascript error.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4397">#4397</a> : Wysiwyg mode caused the host page scroll.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4385">#4385</a> : Fixed editor's auto adjusting on DOM structure were confusing the dirty checking mechanism.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4397">#4397</a> : Fixed regression of [3816] where turn on design mode was causing Firefox3 to scroll the host page.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4254">#4254</a> : Added basic API sample.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4107">#4107</a> : Normalize css font-family style text for correct comparision.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3664">#3664</a> : Insert block element in empty editor document should not create new paragraph.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4037">#4037</a> : 'id' attribute is missing with Flash dialog advanced page.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4047">#4047</a> : Delete selected control type element when 'Backspace' is pressed on it.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4191">#4191</a> : Fixed: dialog changes confirmation on image dialog appeared even when no changes have been made.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4351">#4351</a> : Dash and dot could appear in attribute names.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4355">#4355</a> : 'maximize' and 'showblock' commands shouldn't take editor focus.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4504">#4504</a> : Fixed 'Enter'/'Esc' key is not working on dialog button.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4245">#4245</a> : 'Strange Template' now come with a style attribute for width.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4512">#4512</a> : Fixed styles plugin incorrectly adding semicolons to style text.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3855">#3855</a> : Fixed loading unminified _source files when ckeditor_source.js is used.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3717">#3717</a> : Dialog settings defaults can now be overridden in-page through the CKEDITOR.config object.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4481">#4481</a> : The 'stylesCombo_stylesSet' configuration entry didn't work for full URLs.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4480">#4480</a> : Fixed scope attribute in th.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4467">#4467</a> : Fixed bug to use custom icon in context menus. Thanks to george.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4190">#4190</a> : Fixed select field dialog layout in Safari.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4518">#4518</a> : Fixed unable to open dialog without editor focus in IE.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4519">#4519</a> : Fixed maximize without editor focus throw error in IE.</li>
+	</ul>
+	<h3>
 		CKEditor 3.0</h3>
 	<p>
@@ -42,4 +98,5 @@
 	<li><a href="http://dev.fckeditor.net/ticket/3188">#3188</a> : Introduce
 		&lt;pre&gt; formatting feature when converting from other blocks.</li>
+	<li><a href="http://dev.fckeditor.net/ticket/4445">#4445</a> : editor::setData now support an optional callback parameter.</li>
 	</ul>
 	<p>
@@ -236,4 +293,5 @@
 		<li><a href="http://dev.fckeditor.net/ticket/4227">#4227</a> : Fixed destroy editor instance created on textarea which is not within form cause error.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4240">#4240</a> : Fixed editor name containing hyphen break editor completely.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3828">#3828</a> : Malformed nested list is now corrected by the parser.</li>
 	</ul>
 	<h3>
Index: /CKEditor/branches/versions/3.0.x/_dev/_thirdparty/jsdoc-toolkit/app/lib/JSDOC.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_dev/_thirdparty/jsdoc-toolkit/app/lib/JSDOC.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_dev/_thirdparty/jsdoc-toolkit/app/lib/JSDOC.js	(revision 4394)
@@ -1,5 +1,5 @@
 /**
 	@overview
-	@date $Date: 2008-08-02 10:25:54 +0200 (Sat, 02 Aug 2008) $
+	@date $Date: 2008-08-02 10:25:54 +0200 (So, 02 sie 2008) $
 	@version $Revision: 668 $ 
 	@location $HeadURL: http://jsdoc-toolkit.googlecode.com/svn/tags/jsdoc_toolkit-2.0.2/jsdoc-toolkit/app/lib/JSDOC.js $
Index: /CKEditor/branches/versions/3.0.x/_dev/jslint/lint.sh
===================================================================
--- /CKEditor/branches/versions/3.0.x/_dev/jslint/lint.sh	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_dev/jslint/lint.sh	(revision 4394)
@@ -1,2 +1,4 @@
+#!/usr/bin/env bash
+
 #
 # Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
@@ -8,4 +10,11 @@
 #
 
+if [ -L $0 ] ; then
+    DIR=$(dirname $(readlink -f $0)) ;
+else
+    DIR=$(dirname $0) ;
+fi ;
+
+pushd $DIR
 if [ "$1" = "" ]
 then
@@ -17,2 +26,3 @@
 	echo Process completed.
 fi
+popd
Index: /CKEditor/branches/versions/3.0.x/_dev/langtool/langtool.sh
===================================================================
--- /CKEditor/branches/versions/3.0.x/_dev/langtool/langtool.sh	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_dev/langtool/langtool.sh	(revision 4394)
@@ -1,3 +1,3 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 # Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
@@ -6,3 +6,11 @@
 # Checks translation files in given directory.
 
+if [ -L $0 ] ; then
+    DIR=$(dirname $(readlink -f $0)) ;
+else
+    DIR=$(dirname $0) ;
+fi ;
+
+pushd $DIR
 java -jar langtool/langtool.jar ../../_source/lang
+popd
Index: /CKEditor/branches/versions/3.0.x/_dev/packager/package.sh
===================================================================
--- /CKEditor/branches/versions/3.0.x/_dev/packager/package.sh	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_dev/packager/package.sh	(revision 4394)
@@ -1,6 +1,14 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 # Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 
+if [ -L $0 ] ; then
+    DIR=$(dirname $(readlink -f $0)) ;
+else
+    DIR=$(dirname $0) ;
+fi ;
+
+pushd $DIR
 java -jar ckpackager/ckpackager.jar ../../ckeditor.pack
+popd
Index: /CKEditor/branches/versions/3.0.x/_dev/releaser/ckreleaser.release
===================================================================
--- /CKEditor/branches/versions/3.0.x/_dev/releaser/ckreleaser.release	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_dev/releaser/ckreleaser.release	(revision 4394)
@@ -33,10 +33,4 @@
 
 	{
-		source : '_source/tests',
-		target : 'tests',
-		minify : false
-	},
-
-	{
 		source : '_source/themes',
 		target : 'themes',
@@ -47,8 +41,4 @@
 rename :
 [
-	{
-		source : 'tests',
-		target : '_tests',
-	},
 ],
 
Index: /CKEditor/branches/versions/3.0.x/_dev/releaser/release.bat
===================================================================
--- /CKEditor/branches/versions/3.0.x/_dev/releaser/release.bat	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_dev/releaser/release.bat	(revision 4394)
@@ -11,3 +11,3 @@
 :: rmdir /S /Q release
 
-java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.0" ckeditor_3.0
+java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.0.1" ckeditor_3.0.1
Index: /CKEditor/branches/versions/3.0.x/_dev/releaser/release.sh
===================================================================
--- /CKEditor/branches/versions/3.0.x/_dev/releaser/release.sh	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_dev/releaser/release.sh	(revision 4394)
@@ -1,6 +1,14 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 # Copyright (c) 2003-2009, Frederico Caldeira Knabben. All rights reserved.
 # For licensing, see LICENSE.html or http://ckeditor.com/license
 
-java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.0" ckeditor_3.0
+if [ -L $0 ] ; then
+    DIR=$(dirname $(readlink -f $0)) ;
+else
+    DIR=$(dirname $0) ;
+fi ;
+
+pushd $DIR
+java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.0 SVN" ckeditor_3.0_svn
+popd
Index: /CKEditor/branches/versions/3.0.x/_samples/api.html
===================================================================
--- /CKEditor/branches/versions/3.0.x/_samples/api.html	(revision 4394)
+++ /CKEditor/branches/versions/3.0.x/_samples/api.html	(revision 4394)
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+Copyright (c) 2003-2009, 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>API usage - CKEditor Sample</title>
+	<script type="text/javascript" src="sample.js"></script>
+	<script id="headscript" type="text/javascript">
+	//<![CDATA[
+
+// The instanceReady event is fired when an instance of CKEditor has finished
+// its initialization.
+CKEDITOR.on( 'instanceReady', function( ev )
+	{
+		// Show the editor name and description in the browser status bar.
+		document.getElementById('eMessage').innerHTML = '<p>Instance "' + ev.editor.name + '" loaded.<\/p>' ;
+
+		// Show this sample buttons.
+		document.getElementById('eButtons').style.visibility = '' ;
+	});
+
+function InsertHTML()
+{
+	// Get the editor instance that we want to interact with.
+	var oEditor = CKEDITOR.instances.editor1 ;
+	var value = document.getElementById( 'plainArea' ).value ;
+
+	// Check the active editing mode.
+	if (oEditor.mode == 'wysiwyg' )
+	{
+		// Insert the desired HTML.
+		oEditor.insertHtml( value ) ;
+	}
+	else
+		alert( 'You must be on WYSIWYG mode!' ) ;
+}
+
+function SetContents()
+{
+	// Get the editor instance that we want to interact with.
+	var oEditor = CKEDITOR.instances.editor1 ;
+	var value = document.getElementById( 'plainArea' ).value ;
+
+	// Set the editor contents (replace the actual one).
+	oEditor.setData( value ) ;
+}
+
+function GetContents()
+{
+	// Get the editor instance that we want to interact with.
+	var oEditor = CKEDITOR.instances.editor1 ;
+
+	// Get the editor contents
+	alert( oEditor.getData() ) ;
+}
+
+function ExecuteCommand( commandName )
+{
+	// Get the editor instance that we want to interact with.
+	var oEditor = CKEDITOR.instances.editor1 ;
+
+	// Check the active editing mode.
+	if (oEditor.mode == 'wysiwyg' )
+	{
+		// Execute the command.
+		oEditor.execCommand( commandName ) ;
+	}
+	else
+		alert( 'You must be on WYSIWYG mode!' ) ;
+}
+
+function CheckDirty()
+{
+	// Get the editor instance that we want to interact with.
+	var oEditor = CKEDITOR.instances.editor1 ;
+	alert( oEditor.checkDirty() ) ;
+}
+
+function ResetDirty()
+{
+	// Get the editor instance that we want to interact with.
+	var oEditor = CKEDITOR.instances.editor1 ;
+	oEditor.resetDirty() ;
+	alert( 'The "IsDirty" status has been reset' ) ;
+}
+
+	//]]>
+	</script>
+</head>
+<body>
+	<div id="html">
+		<form action="sample_posteddata.php" method="post">
+		<p>
+		This sample shows how to use the CKeditor JavaScript API to interact with the editor
+		at runtime.</p>
+		<textarea id="editor1" name="editor1" rows="10" cols="80">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://www.fckeditor.net/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
+		<script type="text/javascript">
+		//<![CDATA[
+			// Replace the <textarea id="editor1"> with an CKEditor instance.
+			var editor = CKEDITOR.replace( 'editor1');
+		//]]>
+		</script>
+		<div id="eMessage">
+
+		</div>
+		<div id="eButtons" style="visibility: hidden">
+			<input type="button" value="Insert HTML" onclick="InsertHTML();" />
+			<input type="button" value="Set Editor Contents" onclick="SetContents();" />
+			<input type="button" value="Get Editor Contents (XHTML)" onclick="GetContents();" />
+			<br />
+			<textarea id="plainArea" cols="80" rows="3">&lt;h2&gt;Test&lt;/h2&gt;&lt;p&gt;This is some &lt;a href="/Test1.html"&gt;sample&lt;/a&gt; HTML&lt;/p&gt;</textarea>
+			<br />
+			<br />
+			<input type="button" value='Execute "bold" Command' onclick="ExecuteCommand('bold');" />
+			<input type="button" value='Execute "link" Command' onclick="ExecuteCommand('link');" />
+		<br />
+		<br />
+		<input type="button" value="checkDirty()" onclick="CheckDirty();" />
+		<input type="button" value="resetDirty()" onclick="ResetDirty();" />
+		</div>
+		</form>
+	</div>
+</body>
+</html>
Index: /CKEditor/branches/versions/3.0.x/_samples/divreplace.html
===================================================================
--- /CKEditor/branches/versions/3.0.x/_samples/divreplace.html	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_samples/divreplace.html	(revision 4394)
@@ -48,5 +48,6 @@
 	element = element.parentNode;
 
-	if ( element.nodeName.toLowerCase() == 'div' )
+	if ( element.nodeName.toLowerCase() == 'div'
+		 && ( element.className.indexOf( 'editable' ) != -1 ) )
 		replaceDiv( element );
 }
Index: /CKEditor/branches/versions/3.0.x/_samples/index.html
===================================================================
--- /CKEditor/branches/versions/3.0.x/_samples/index.html	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_samples/index.html	(revision 4394)
@@ -34,4 +34,5 @@
 		<li><a href="divreplace.html">Replace DIV elements on the fly</a>&nbsp; </li>
 		<li><a href="ajax.html">Create and destroy editor instances for Ajax applications</a></li>
+		<li><a href="api.html">Basic usage of the API</a></li>
 		<li><a href="api_dialog.html">Using the JavaScript API to customize dialogs</a></li>
 		<li><a href="enterkey.html">Using the "Enter" key in CKEditor</a></li>
Index: /CKEditor/branches/versions/3.0.x/_source/core/_bootstrap.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/_bootstrap.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/_bootstrap.js	(revision 4394)
@@ -23,5 +23,14 @@
 
 	// Update CKEDITOR.env.
-	if ( ( CKEDITOR.env.hc = ( hcDetect.getComputedStyle( 'background-image' ) == 'none' ) ) )
+	// Catch exception needed sometimes for FF. (#4230)
+	try
+	{
+		CKEDITOR.env.hc = ( hcDetect.getComputedStyle( 'background-image' ) == 'none' );
+	}
+	catch (e)
+	{
+		CKEDITOR.env.hc = false;
+	}
+	if ( CKEDITOR.env.hc )
 		CKEDITOR.env.cssClass += ' cke_hc';
 
Index: /CKEditor/branches/versions/3.0.x/_source/core/command.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/command.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/command.js	(revision 4394)
@@ -6,4 +6,6 @@
 CKEDITOR.command = function( editor, commandDefinition )
 {
+	this.uiItems = [];
+
 	this.exec = function( data )
 	{
@@ -11,6 +13,6 @@
 			return false;
 
-		// The editor will always have the focus when executing a command.
-		editor.focus();
+		if( this.editorFocus )     // Give editor focus if necessary (#4355).
+			editor.focus();
 
 		return ( commandDefinition.exec.call( this, editor, data ) !== false );
@@ -21,4 +23,5 @@
 		{
 			modes : { wysiwyg : 1 },
+			editorFocus : true,
 			state : CKEDITOR.TRISTATE_OFF
 		});
Index: /CKEditor/branches/versions/3.0.x/_source/core/commanddefinition.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/commanddefinition.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/commanddefinition.js	(revision 4394)
@@ -71,2 +71,16 @@
  * });
  */
+
+/**
+ * Whether the command should give focus to the editor before execution.
+ * @name  CKEDITOR.commandDefinition.editorFocus
+ * @type {Boolean}
+ * @example
+ * editorInstance.addCommand( 'maximize',
+ * {
+ *     exec : function( editor )
+ *     {
+ *     },
+ *     editorFocus : false    // The command doesn't require focusing the editing document.
+ * });
+ */
Index: /CKEditor/branches/versions/3.0.x/_source/core/config.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/config.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/config.js	(revision 4394)
@@ -64,11 +64,12 @@
 
 	/**
-	 * The CSS file to be used to apply style to the contents. It should
+	 * The CSS file(s) to be used to apply style to the contents. It should
 	 * reflect the CSS used in the final pages where the contents are to be
 	 * used.
-	 * @type String
+	 * @type String|Array
 	 * @default '&lt;CKEditor folder&gt;/contents.css'
 	 * @example
 	 * config.contentsCss = '/css/mysitestyles.css';
+	 * config.contentsCss = ['/css/mysitestyles.css', '/css/anotherfile.css'];
 	 */
 	contentsCss : CKEDITOR.basePath + 'contents.css',
@@ -179,11 +180,12 @@
 
 	/**
-	 * The editor height, in CSS size format or pixel integer.
+	 * The height of editing area( content ), in relative or absolute, e.g. 30px, 5em.
+	 * Note: Percentage unit is not supported yet. e.g. 30%.
 	 * @type Number|String
 	 * @default '200'
 	 * @example
 	 * config.height = 500;
-	 * @example
 	 * config.height = '25em';
+	 * config.height = '300px';
 	 */
 	height : 200,
@@ -197,5 +199,5 @@
 	 * @example
 	 */
-	plugins : 'about,basicstyles,blockquote,button,clipboard,colorbutton,contextmenu,elementspath,enterkey,entities,filebrowser,find,flash,font,format,forms,horizontalrule,htmldataprocessor,image,indent,justify,keystrokes,link,list,maximize,newpage,pagebreak,pastefromword,pastetext,popup,preview,print,removeformat,resize,save,scayt,smiley,showblocks,sourcearea,stylescombo,table,tabletools,specialchar,tab,templates,toolbar,undo,wysiwygarea,wsc',
+	plugins : 'about,basicstyles,blockquote,button,clipboard,colorbutton,colordialog,contextmenu,elementspath,enterkey,entities,filebrowser,find,flash,font,format,forms,horizontalrule,htmldataprocessor,image,indent,justify,keystrokes,link,list,maximize,newpage,pagebreak,pastefromword,pastetext,popup,preview,print,removeformat,resize,save,scayt,smiley,showblocks,sourcearea,stylescombo,table,tabletools,specialchar,tab,templates,toolbar,undo,wysiwygarea,wsc',
 
 	/**
Index: /CKEditor/branches/versions/3.0.x/_source/core/dom/element.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/dom/element.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/dom/element.js	(revision 4394)
@@ -1381,4 +1381,14 @@
 		{
 			return this.$.childNodes.length;
- 		}
+ 		},
+
+		disableContextMenu : function()
+		{
+			this.on( 'contextmenu', function( event )
+				{
+					// Cancel the browser context menu.
+					if ( !event.data.getTarget().hasClass( 'cke_enable_context_menu' ) )
+						event.data.preventDefault();
+				} );
+		}
 	});
Index: /CKEditor/branches/versions/3.0.x/_source/core/dom/event.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/dom/event.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/dom/event.js	(revision 4394)
@@ -88,11 +88,16 @@
 
 		if ( stopPropagation )
-		{
-			if ( $.stopPropagation )
-				$.stopPropagation();
-			else
-				$.cancelBubble = true;
-		}
+			this.stopPropagation();
 	},
+
+	stopPropagation : function()
+	{
+		var $ = this.$;
+		if ( $.stopPropagation )
+			$.stopPropagation();
+		else
+			$.cancelBubble = true;
+	},
+
 	/**
 	 * Returns the DOM node where the event was targeted to.
Index: /CKEditor/branches/versions/3.0.x/_source/core/dtd.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/dtd.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/dtd.js	(revision 4394)
@@ -84,4 +84,11 @@
 		 */
 		$listItem : {dd:1,dt:1,li:1},
+
+		/**
+	     * List of list root elements.
+	     * @type Object
+	     * @example
+	     */
+	    $list: { ul:1,ol:1,dl:1},
 
 		/**
Index: /CKEditor/branches/versions/3.0.x/_source/core/editor.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/editor.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/editor.js	(revision 4394)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -114,5 +114,5 @@
 			skinName = skin[ 0 ],
 			skinPath = CKEDITOR.getUrl( skin[ 1 ] || (
-				'_source/' +	// %REMOVE_LINE%
+				'_source/' +	// @Packager.RemoveLine
 				'skins/' + skinName + '/' ) );
 
@@ -437,4 +437,11 @@
 		},
 
+		/**
+		 * Add a trunk of css text to the editor which will be applied to the wysiwyg editing document.
+		 * Note: This function should be called before editor is loaded to take effect.
+		 * @param css {String} CSS text.
+		 * @example
+		 * editorInstance.addCss( 'body { background-color: grey; }' );
+		 */
 		addCss : function( css )
 		{
@@ -568,9 +575,22 @@
 		 * Sets the editor data. The data must be provided in raw format.
 		 * @param {String} data HTML code to replace the curent content in the editor.
+		 * @param {Function} callback Function to be called after the setData is completed.
 		 * @example
 		 * CKEDITOR.instances.editor1.<b>setData( '&lt;p&gt;This is the editor data.&lt;/p&gt;' )</b>;
-		 */
-		setData : function( data )
-		{
+		 * CKEDITOR.instances.editor1.setData( '&lt;p&gt;Some other editor data.&lt;/p&gt;', function()
+		 * {
+		 * 		CKEDITOR.instances.editor1.checkDirty(); 	// true
+		 * } );
+		 */
+		setData : function( data , callback )
+		{
+			if( callback )
+			{
+				this.on( 'dataReady', function( evt )
+				{
+					evt.removeListener();
+					callback.call( evt.editor );
+				} );
+			}
 			// Fire "setData" so data manipulation may happen.
 			var eventData = { dataValue : data };
Index: /CKEditor/branches/versions/3.0.x/_source/core/htmlparser.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/htmlparser.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/htmlparser.js	(revision 4394)
@@ -19,5 +19,5 @@
 (function()
 {
-	var attribsRegex	= /([\w:]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,
+	var attribsRegex	= /([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,
 		emptyAttribs	= {checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};
 
Index: /CKEditor/branches/versions/3.0.x/_source/core/htmlparser/fragment.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/htmlparser/fragment.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/htmlparser/fragment.js	(revision 4394)
@@ -46,5 +46,6 @@
 	var nonBreakingBlocks = CKEDITOR.tools.extend(
 			{table:1,ul:1,ol:1,dl:1},
-			CKEDITOR.dtd.table, CKEDITOR.dtd.ul, CKEDITOR.dtd.ol, CKEDITOR.dtd.dl );
+			CKEDITOR.dtd.table, CKEDITOR.dtd.ul, CKEDITOR.dtd.ol, CKEDITOR.dtd.dl ),
+		listBlocks = CKEDITOR.dtd.$list, listItems = CKEDITOR.dtd.$listItem;
 
 	/**
@@ -190,11 +191,25 @@
 					return;
 
-				var reApply = false;
-
+				var reApply = false,
+					addPoint;   // New position to start adding nodes.
+
+				// Fixing malformed nested lists(#3828).
+				if( tagName in listBlocks
+					&& currentName in listBlocks )
+				{
+					var children = currentNode.children,
+						lastChild = children[ children.length - 1 ];
+					// Move inner list into to previous list item if any.
+					if( lastChild && lastChild.name in listItems )
+						returnPoint = currentNode, addPoint = lastChild;
+					// Move inner list outside in the worst case.
+					else
+						addElement( currentNode, currentNode.parent );
+				}
 				// If the element name is the same as the current element name,
 				// then just close the current one and append the new one to the
 				// parent. This situation usually happens with <p>, <li>, <dt> and
 				// <dd>, specially in IE. Do not enter in this if block in this case.
-				if ( tagName == currentName )
+				else if ( tagName == currentName )
 				{
 					addElement( currentNode, currentNode.parent );
@@ -223,7 +238,9 @@
 				}
 
-				// In any of the above cases, we'll be adding, or trying to
-				// add it to the parent.
-				currentNode = currentNode.returnPoint || currentNode.parent;
+				if( addPoint )
+					currentNode = addPoint;
+				// Try adding it to the return point, or the parent element.
+				else
+					currentNode = currentNode.returnPoint || currentNode.parent;
 
 				if ( reApply )
Index: /CKEditor/branches/versions/3.0.x/_source/core/lang.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/lang.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/lang.js	(revision 4394)
@@ -93,11 +93,13 @@
 		load : function( languageCode, defaultLanguage, callback )
 		{
-			if ( !languageCode )
-				languageCode = this.detect( defaultLanguage );
+			// If no languageCode - fallback to browser or default.
+			// If languageCode - fallback to no-localized version or default.
+			if ( !languageCode || !CKEDITOR.lang.languages[ languageCode ] )
+				languageCode = this.detect( defaultLanguage, languageCode );
 
 			if ( !this[ languageCode ] )
 			{
 				CKEDITOR.scriptLoader.load( CKEDITOR.getUrl(
-					'_source/' +	// %REMOVE_LINE%
+					'_source/' +	// @Packager.RemoveLine
 					'lang/' + languageCode + '.js' ),
 					function()
@@ -123,9 +125,10 @@
 		 * alert( CKEDITOR.lang.detect( 'en' ) );  // e.g., in a German browser: "de"
 		 */
-		detect : function( defaultLanguage )
+		detect : function( defaultLanguage, probeLanguage )
 		{
 			var languages = this.languages;
+			probeLanguage = probeLanguage || navigator.userLanguage || navigator.language;
 
-			var parts = ( navigator.userLanguage || navigator.language )
+			var parts = probeLanguage
 					.toLowerCase()
 					.match( /([a-z]+)(?:-([a-z]+))?/ ),
Index: /CKEditor/branches/versions/3.0.x/_source/core/plugins.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/plugins.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/plugins.js	(revision 4394)
@@ -16,5 +16,5 @@
  */
 CKEDITOR.plugins = new CKEDITOR.resourceManager(
-	'_source/' +	// %REMOVE_LINE%
+	'_source/' +	// @Packager.RemoveLine
 	'plugins/', 'plugin' );
 
Index: /CKEditor/branches/versions/3.0.x/_source/core/skins.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/skins.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/skins.js	(revision 4394)
@@ -136,5 +136,5 @@
 				|| ( paths[ skinName ] =
 						CKEDITOR.getUrl(
-							'_source/' +	// %REMOVE_LINE%
+							'_source/' +	// @Packager.RemoveLine
 							'skins/' + skinName + '/' ) );
 		},
Index: Editor/branches/versions/3.0.x/_source/core/test.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/test.js	(revision 4393)
+++ 	(revision )
@@ -1,184 +1,0 @@
-﻿/*
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.test} object, which contains
- *		functions used at our testing environment.
- */
-
-/*jsl:import ../tests/yuitest.js*/
-
-/**
- * Contains functions used at our testing environment. Currently,
- * our testing system is based on the
- * <a href="http://developer.yahoo.com/yui/yuitest/">YUI Test</a>.
- * @namespace
- * @example
- */
-CKEDITOR.test =
-{
-	/**
-	 * The assertion namespace, containing all assertion functions. Currently,
-	 * this is an alias for
-	 * <a href="http://developer.yahoo.com/yui/docs/YAHOO.util.Assert.html">YAHOO.util.Assert</a>.
-	 * @example
-	 * <b>CKEDITOR.test.assert</b>.areEqual( '10', 10 );        // "true"
-	 * <b>CKEDITOR.test.assert</b>.areSame( '10', 10 );         // "false"
-	 * <b>CKEDITOR.test.assert</b>.isUndefined( window.test );  // "true"
-	 */
-	assert : YAHOO.util.Assert,
-
-	runner : YAHOO.tool.TestRunner,
-
-	/**
-	 * Adds a test case to the test runner.
-	 * @param {Object} testCase The test case object. See other tests for
-	 *		examples.
-	 * @example
-	 * <b>CKEDITOR.test.addTestCase</b>((function()
-	 * {
-	 *     // Local reference to the "assert" object.
-	 *     var assert = CKEDITOR.test.assert;
-	 *
-	 *     return {
-	 *         test_example : function()
-	 *         {
-	 *             assert.areSame( '10', 10 );  // FAIL
-	 *         }
-	 *      };
-	 * })());
-	 */
-	addTestCase : function( testCase )
-	{
-		YAHOO.tool.TestRunner.add( new YAHOO.tool.TestCase( testCase ) );
-	},
-
-	/**
-	 * Gets the inner HTML of an element, for testing purposes.
-	 * @param {Boolean} stripLineBreaks Assign 'false' to avoid trimming line-breaks.
-	 */
-	getInnerHtml : function( elementOrId , stripLineBreaks )
-	{
-		var html;
-
-		if ( typeof elementOrId == 'string' )
-			html = document.getElementById( elementOrId ).innerHTML;
-		else if ( elementOrId.getHtml )
-			html = elementOrId.getHtml();
-		else
-			html = elementOrId.innerHTML    // retrieve from innerHTML
-				   || elementOrId.value;    // retrieve from value
-
-		return CKEDITOR.test.fixHtml( html, stripLineBreaks );
-	},
-
-	fixHtml : function( html, stripLineBreaks )
-	{
-		html = html.toLowerCase();
-
-		if ( stripLineBreaks !== false )
-			html = html.replace( /[\n\r]/g, '' );
-		else
-			html = html.replace( /\r/g, '' );    // Normalize CRLF.
-
-		function sorter( a, b )
-		{
-			var nameA = a[ 0 ];
-			var nameB = b[ 0 ];
-			return nameA < nameB ? -1 : nameA > nameB ? 1 : 0;
-		}
-
-		html = html.replace( /<\w[^>]*/g, function( match )
-			{
-				var attribs = [];
-				var hasClass;
-
-				match = match.replace( /\s([^\s=]+)=((?:"[^"]*")|(?:'[^']*')|(?:[^\s]+))/g, function( match, attName, attValue )
-					{
-						if ( attName == 'style' )
-						{
-							// Reorganize the style rules so they are sorted by name.
-
-							var rules = [];
-
-							// Push all rules into an Array.
-							attValue.replace( /(?:"| |;|^ )\s*([^ :]+?)\s*:\s*([^;"]+?)\s*(?=;|"|$)/g, function( match, name, value )
-								{
-									rules.push( [ name, value ] );
-								});
-
-							// Sort the Array.
-							rules.sort( sorter );
-
-							// Transform each rule entry into a string name:value.
-							for ( var i = 0 ; i < rules.length ; i++ )
-								rules[ i ] = rules[ i ].join( ':' );
-
-							// Join all rules with commas, removing spaces and adding an extra comma to the end.
-							attValue = '"' + rules && ( rules.join( ';' ).replace( /\s+/g, '' ) + ';' );
-						}
-
-						// IE may have 'class' more than once.
-						if ( attName == 'class' )
-						{
-							if ( hasClass )
-								return '';
-
-							hasClass = true;
-						}
-
-						if ( attName != '_cke_expando' )
-							attribs.push( [ attName, attValue ] );
-
-						return '';
-					} );
-
-				attribs.sort( sorter );
-
-				var ret = match.replace( /\s{2,}/g, ' ' );
-
-				for ( var i = 0 ; i < attribs.length ; i++ )
-				{
-					ret += ' ' + attribs[i][0] + '=';
-					ret += (/^["']/).test( attribs[i][1] ) ? attribs[i][1] : '"' + attribs[i][1] + '"';
-				}
-
-				return ret;
-			} );
-
-		return html;
-	},
-
-	/**
-	 * Wrapper of CKEDITOR.dom.element::getAttribute for style text normalization.
-	 * @param element
-	 * @param attrName
-	 */
-	getAttribute : function( element, attrName )
-	{
-		var retval = element.getAttribute( attrName );
-		if ( attrName == 'style' )
-		{
-			// 1. Lower case property name.
-			// 2. Add space after colon.
-			// 3. Strip whitepsaces around semicolon.
-			// 4. Always end with semicolon
-			return retval.replace( /(?:^|;)\s*([A-Z-_]+)(:\s*)/ig,
-				function( match, property, colon )
-				{
-					return property.toLowerCase() + ': ';
-				} )
-				.replace( /\s+(?:;\s*|$)/g, ';' )
-				.replace( /([^;])$/g, '$1;' );
-		}
-
-		return retval;
-	},
-
-	/**
-	 * Whether control the runner manually instead of running on window onload.
-	 */
-	deferRunner : false
-};
Index: /CKEditor/branches/versions/3.0.x/_source/core/themes.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/themes.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/themes.js	(revision 4394)
@@ -16,4 +16,4 @@
  */
 CKEDITOR.themes = new CKEDITOR.resourceManager(
-	'_source/'+		// %REMOVE_LINE%
+	'_source/'+		// @Packager.RemoveLine
 	'themes/', 'theme' );
Index: /CKEditor/branches/versions/3.0.x/_source/core/tools.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/tools.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/tools.js	(revision 4394)
@@ -198,16 +198,25 @@
 		 * alert( CKEDITOR.tools.cssStyleToDomStyle( 'float' ) );             // "cssFloat"
 		 */
-		cssStyleToDomStyle : function( cssName )
-		{
-			if ( cssName == 'float' )
-				return 'cssFloat';
-			else
-			{
-				return cssName.replace( /-./g, function( match )
-					{
-						return match.substr( 1 ).toUpperCase();
-					});
-			}
-		},
+		cssStyleToDomStyle : ( function()
+		{
+			var test = document.createElement( 'div' ).style;
+
+			var cssFloat = ( typeof test.cssFloat != 'undefined' ) ? 'cssFloat'
+				: ( typeof test.styleFloat != 'undefined' ) ? 'styleFloat'
+				: 'float';
+
+			return function( cssName )
+			{
+				if ( cssName == 'float' )
+					return cssFloat;
+				else
+				{
+					return cssName.replace( /-./g, function( match )
+						{
+							return match.substr( 1 ).toUpperCase();
+						});
+				}
+			};
+		} )(),
 
 		/**
Index: /CKEditor/branches/versions/3.0.x/_source/core/ui.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/core/ui.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/core/ui.js	(revision 4394)
@@ -22,5 +22,6 @@
 	{
 		handlers : {},
-		items : {}
+		items : {},
+		editor : editor
 	};
 
@@ -52,4 +53,6 @@
 		{
 			type : type,
+			// The name of {@link CKEDITOR.command} which associate with this UI.
+			command : definition.command || null,
 			args : Array.prototype.slice.call( arguments, 2 )
 		};
@@ -64,7 +67,14 @@
 	{
 		var item	= this._.items[ name ],
-			handler	= item && this._.handlers[ item.type ];
+			handler	= item && this._.handlers[ item.type ],
+			command = item && item.command && this._.editor.getCommand( item.command );
 
-		return handler && handler.create.apply( this, item.args );
+		var result = handler && handler.create.apply( this, item.args );
+
+		// Add reference inside command object.
+		if ( command )
+			command.uiItems.push( result );
+
+		return result;
 	},
 
Index: /CKEditor/branches/versions/3.0.x/_source/lang/_translationstatus.txt
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/_translationstatus.txt	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/_translationstatus.txt	(revision 4394)
@@ -2,58 +2,58 @@
 For licensing, see LICENSE.html or http://ckeditor.com/license
 
-af.js      Found: 312 Missing: 123
-ar.js      Found: 329 Missing: 106
-bg.js      Found: 305 Missing: 130
-bn.js      Found: 307 Missing: 128
-bs.js      Found: 210 Missing: 225
-ca.js      Found: 435 Missing: 0
-cs.js      Found: 327 Missing: 108
-da.js      Found: 326 Missing: 109
-de.js      Found: 435 Missing: 0
-el.js      Found: 311 Missing: 124
-en-au.js   Found: 395 Missing: 40
-en-ca.js   Found: 395 Missing: 40
-en-uk.js   Found: 395 Missing: 40
-eo.js      Found: 282 Missing: 153
-es.js      Found: 435 Missing: 0
-et.js      Found: 326 Missing: 109
-eu.js      Found: 435 Missing: 0
-fa.js      Found: 327 Missing: 108
-fi.js      Found: 325 Missing: 110
-fo.js      Found: 326 Missing: 109
-fr-ca.js   Found: 327 Missing: 108
-fr.js      Found: 434 Missing: 1
-gl.js      Found: 308 Missing: 127
-gu.js      Found: 326 Missing: 109
-he.js      Found: 332 Missing: 103
-hi.js      Found: 327 Missing: 108
-hr.js      Found: 435 Missing: 0
-hu.js      Found: 326 Missing: 109
-is.js      Found: 332 Missing: 103
-it.js      Found: 434 Missing: 1
-ja.js      Found: 434 Missing: 1
-km.js      Found: 299 Missing: 136
-ko.js      Found: 318 Missing: 117
-lt.js      Found: 331 Missing: 104
-lv.js      Found: 308 Missing: 127
-mn.js      Found: 326 Missing: 109
-ms.js      Found: 287 Missing: 148
-nb.js      Found: 325 Missing: 110
-nl.js      Found: 327 Missing: 108
-no.js      Found: 325 Missing: 110
-pl.js      Found: 435 Missing: 0
-pt-br.js   Found: 434 Missing: 1
-pt.js      Found: 307 Missing: 128
-ro.js      Found: 326 Missing: 109
-ru.js      Found: 332 Missing: 103
-sk.js      Found: 327 Missing: 108
-sl.js      Found: 325 Missing: 110
-sr-latn.js Found: 301 Missing: 134
-sr.js      Found: 301 Missing: 134
-sv.js      Found: 324 Missing: 111
-th.js      Found: 312 Missing: 123
-tr.js      Found: 332 Missing: 103
-uk.js      Found: 435 Missing: 0
-vi.js      Found: 435 Missing: 0
-zh-cn.js   Found: 435 Missing: 0
-zh.js      Found: 435 Missing: 0
+af.js      Found: 312 Missing: 130
+ar.js      Found: 329 Missing: 113
+bg.js      Found: 305 Missing: 137
+bn.js      Found: 307 Missing: 135
+bs.js      Found: 210 Missing: 232
+ca.js      Found: 435 Missing: 7
+cs.js      Found: 442 Missing: 0
+da.js      Found: 435 Missing: 7
+de.js      Found: 435 Missing: 7
+el.js      Found: 311 Missing: 131
+en-au.js   Found: 395 Missing: 47
+en-ca.js   Found: 395 Missing: 47
+en-uk.js   Found: 395 Missing: 47
+eo.js      Found: 282 Missing: 160
+es.js      Found: 435 Missing: 7
+et.js      Found: 326 Missing: 116
+eu.js      Found: 435 Missing: 7
+fa.js      Found: 327 Missing: 115
+fi.js      Found: 325 Missing: 117
+fo.js      Found: 326 Missing: 116
+fr-ca.js   Found: 327 Missing: 115
+fr.js      Found: 434 Missing: 8
+gl.js      Found: 308 Missing: 134
+gu.js      Found: 326 Missing: 116
+he.js      Found: 442 Missing: 0
+hi.js      Found: 327 Missing: 115
+hr.js      Found: 435 Missing: 7
+hu.js      Found: 326 Missing: 116
+is.js      Found: 332 Missing: 110
+it.js      Found: 434 Missing: 8
+ja.js      Found: 434 Missing: 8
+km.js      Found: 299 Missing: 143
+ko.js      Found: 318 Missing: 124
+lt.js      Found: 331 Missing: 111
+lv.js      Found: 308 Missing: 134
+mn.js      Found: 326 Missing: 116
+ms.js      Found: 287 Missing: 155
+nb.js      Found: 325 Missing: 117
+nl.js      Found: 435 Missing: 7
+no.js      Found: 325 Missing: 117
+pl.js      Found: 442 Missing: 0
+pt-br.js   Found: 434 Missing: 8
+pt.js      Found: 307 Missing: 135
+ro.js      Found: 326 Missing: 116
+ru.js      Found: 332 Missing: 110
+sk.js      Found: 327 Missing: 115
+sl.js      Found: 325 Missing: 117
+sr-latn.js Found: 301 Missing: 141
+sr.js      Found: 301 Missing: 141
+sv.js      Found: 324 Missing: 118
+th.js      Found: 312 Missing: 130
+tr.js      Found: 332 Missing: 110
+uk.js      Found: 435 Missing: 7
+vi.js      Found: 435 Missing: 7
+zh-cn.js   Found: 435 Missing: 7
+zh.js      Found: 435 Missing: 7
Index: /CKEditor/branches/versions/3.0.x/_source/lang/af.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/af.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/af.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Skakel',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/ar.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/ar.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/ar.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'الرابط',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/bg.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/bg.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/bg.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Връзка',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/bn.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/bn.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/bn.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'লিংক',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/bs.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/bs.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/bs.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Link', // MISSING
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/ca.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/ca.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/ca.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'L\'alçada de cel·la ha de ser un nombre.',
 			invalidRowSpan	: 'L\'expansió de files ha de ser un nombre enter.',
-			invalidColSpan	: 'L\'expansió de columnes ha de ser un nombre enter.'
+			invalidColSpan	: 'L\'expansió de columnes ha de ser un nombre enter.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Enllaç',
 		button2Img	: 'Voleu transformar el botó d\'imatge seleccionat en una simple imatge?',
-		img2Button	: 'Voleu transformar la imatge seleccionada en un botó d\'imatge?'
+		img2Button	: 'Voleu transformar la imatge seleccionada en un botó d\'imatge?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximiza',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Arrossegueu per redimensionar'
+	resize : 'Arrossegueu per redimensionar',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/cs.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/cs.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/cs.js	(revision 4394)
@@ -32,5 +32,5 @@
 	 * of reading non-English words. So be careful while translating it.
 	 */
-	editorTitle		: 'Rich text editor, %1', // MISSING
+	editorTitle		: 'Editor formátovaného textu, %1',
 
 	// Toolbar buttons without dialogs.
@@ -91,10 +91,10 @@
 		generalTab		: 'Obecné',
 		advancedTab		: 'Rozšířené',
-		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	: 'Zadaná hodnota není číselná.',
+		confirmNewPage	: 'Jakékoliv neuložené změny obsahu budou ztraceny. Skutečně chete otevrít novou stránku?',
+		confirmCancel	: 'Některá z nastavení byla změněna. Skutečně chete zavřít dialogové okno?',
 
 		// 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">, nedostupné</span>'
 	},
 
@@ -130,5 +130,5 @@
 		targetPopupName	: 'Název vyskakovacího okna',
 		popupFeatures	: 'Vlastnosti vyskakovacího okna',
-		popupResizable	: 'Resizable', // MISSING
+		popupResizable	: 'Umožňující měnit velikost',
 		popupStatusBar	: 'Stavový řádek',
 		popupLocationBar	: 'Panel umístění',
@@ -142,5 +142,5 @@
 		popupHeight		: 'Výška',
 		popupTop		: 'Horní okraj',
-		id				: 'Id', // MISSING
+		id				: 'Id',
 		langDir			: 'Orientace jazyka',
 		langDirNotSet	: '<nenastaveno>',
@@ -188,7 +188,7 @@
 		matchCase			: 'Rozlišovat velikost písma',
 		matchWord			: 'Pouze celá slova',
-		matchCyclic			: 'Match cyclic', // MISSING
+		matchCyclic			: 'Procházet opakovaně',
 		replaceAll			: 'Nahradit vše',
-		replaceSuccessMsg	: '%1 occurrence(s) replaced.' // MISSING
+		replaceSuccessMsg	: '%1 nahrazení.'
 	},
 
@@ -213,19 +213,19 @@
 		height		: 'Výška',
 		cellSpace	: 'Vzdálenost buněk',
-		cellPad		: 'Odsazení obsahu',
+		cellPad		: 'Odsazení obsahu v buňce',
 		caption		: 'Popis',
 		summary		: 'Souhrn',
-		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
+		headers		: 'Záhlaví',
+		headersNone		: 'Žádné',
+		headersColumn	: 'První sloupec',
+		headersRow		: 'První řádek',
+		headersBoth		: 'Obojí',
+		invalidRows		: 'Počet řádků musí být číslo větší než 0.',
+		invalidCols		: 'Počet sloupců musí být číslo větší než 0.',
+		invalidBorder	: 'Zdaná velikost okraje musí být číselná.',
+		invalidWidth	: 'Zadaná šířka tabulky musí být číselná.',
+		invalidHeight	: 'zadaná výška tabulky musí být číselná.',
+		invalidCellSpacing	: 'Zadaná vzdálenost buněk musí být číselná.',
+		invalidCellPadding	: 'Zadané odsazení obsahu v buňce musí být číselné.',
 
 		cell :
@@ -240,25 +240,26 @@
 			splitHorizontal	: 'Rozdělit buňky vodorovně',
 			splitVertical	: 'Rozdělit buňky svisle',
-			title			: 'Cell Properties', // MISSING
-			cellType		: 'Cell Type', // MISSING
-			rowSpan			: 'Rows Span', // MISSING
-			colSpan			: 'Columns Span', // MISSING
-			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
+			title			: 'Vlastnosti buňky',
+			cellType		: 'Typ buňky',
+			rowSpan			: 'Spojit řádky',
+			colSpan			: 'Spojit sloupce',
+			wordWrap		: 'Zalamování',
+			hAlign			: 'Vodorovné zarovnání',
+			vAlign			: 'Svislé zarovnání',
+			alignTop		: 'Nahoru',
+			alignMiddle		: 'Doprostřed',
+			alignBottom		: 'Dolů',
+			alignBaseline	: 'Na účaří',
+			bgColor			: 'Barva pozadí',
+			borderColor		: 'Barva okraje',
+			data			: 'Data',
+			header			: 'Hlavička',
+			yes				: 'Ano',
+			no				: 'Ne',
+			invalidWidth	: 'Zadaná šířka buňky musí být číslená.',
+			invalidHeight	: 'Zadaná výška buňky musí být číslená.',
+			invalidRowSpan	: 'Zadaný počet sloučených řádků musí být celé číslo.',
+			invalidColSpan	: 'Zadaný počet sloučených sloupců musí být celé číslo.',
+			chooseColor : 'Výběr'
 		},
 
@@ -307,5 +308,5 @@
 		action		: 'Akce',
 		method		: 'Metoda',
-		encoding	: 'Encoding', // MISSING
+		encoding	: 'Kódování',
 		target		: 'Cíl',
 		targetNotSet	: '<nenastaveno>',
@@ -396,6 +397,7 @@
 		alertUrl	: 'Zadejte prosím URL obrázku',
 		linkTab	: 'Odkaz',
-		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
+		button2Img	: 'Skutečně chcete převést zvolené obrázkové tlačítko na obyčejný obrázek?',
+		img2Button	: 'Skutečně chcete převést zvolený obrázek na obrázkové tlačítko?',
+		urlMissing : 'Zadané URL zdroje obrázku nebylo nalezeno.'
 	},
 
@@ -404,18 +406,18 @@
 	{
 		properties		: 'Vlastnosti Flashe',
-		propertiesTab	: 'Properties', // MISSING
+		propertiesTab	: 'Vlastnosti',
 		title		: 'Vlastnosti Flashe',
 		chkPlay		: 'Automatické spuštění',
 		chkLoop		: 'Opakování',
 		chkMenu		: 'Nabídka Flash',
-		chkFull		: 'Allow Fullscreen', // MISSING
+		chkFull		: 'Povolit celoobrazovkový režim',
  		scale		: 'Zobrazit',
 		scaleAll		: 'Zobrazit vše',
 		scaleNoBorder	: 'Bez okraje',
 		scaleFit		: 'Přizpůsobit',
-		access			: 'Script Access', // MISSING
-		accessAlways	: 'Always', // MISSING
-		accessSameDomain	: 'Same domain', // MISSING
-		accessNever	: 'Never', // MISSING
+		access			: 'Přístup ke skriptu',
+		accessAlways	: 'Vždy',
+		accessSameDomain	: 'Ve stejné doméně',
+		accessNever	: 'Nikdy',
 		align		: 'Zarovnání',
 		alignLeft	: 'Vlevo',
@@ -428,16 +430,16 @@
 		alignTextTop	: 'Na horní okraj textu',
 		alignTop	: 'Nahoru',
-		quality		: 'Quality', // MISSING
-		qualityBest		 : 'Best', // MISSING
-		qualityHigh		 : 'High', // MISSING
-		qualityAutoHigh	 : 'Auto High', // MISSING
-		qualityMedium	 : 'Medium', // MISSING
-		qualityAutoLow	 : 'Auto Low', // MISSING
-		qualityLow		 : 'Low', // MISSING
-		windowModeWindow	 : 'Window', // MISSING
-		windowModeOpaque	 : 'Opaque', // MISSING
-		windowModeTransparent	 : 'Transparent', // MISSING
-		windowMode	: 'Window mode', // MISSING
-		flashvars	: 'Variables for Flash', // MISSING
+		quality		: 'Kvalita',
+		qualityBest		 : 'Nejlepší',
+		qualityHigh		 : 'Vysoká',
+		qualityAutoHigh	 : 'Vysoká - auto',
+		qualityMedium	 : 'Střední',
+		qualityAutoLow	 : 'Nízká - auto',
+		qualityLow		 : 'Nejnižší',
+		windowModeWindow	 : 'Okno',
+		windowModeOpaque	 : 'Neprůhledné',
+		windowModeTransparent	 : 'Průhledné',
+		windowMode	: 'Režim okna',
+		flashvars	: 'Proměnné pro Flash',
 		bgcolor	: 'Barva pozadí',
 		width	: 'Šířka',
@@ -446,8 +448,8 @@
 		vSpace	: 'V-mezera',
 		validateSrc : 'Zadejte prosím URL odkazu',
-		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 : 'Zadaná šířka musí být číslo.',
+		validateHeight : 'Zadaná výška musí být číslo.',
+		validateHSpace : 'Zadaná H-mezera musí být číslo.',
+		validateVSpace : 'Zadaná V-mezera musí být číslo.'
 	},
 
@@ -456,7 +458,7 @@
 	{
 		toolbar			: 'Zkontrolovat pravopis',
-		title			: 'Spell Check', // MISSING
-		notAvailable	: 'Sorry, but service is unavailable now.', // MISSING
-		errorLoading	: 'Error loading application service host: %s.', // MISSING
+		title			: 'Kontrola pravopisu',
+		notAvailable	: 'Omlouváme se, ale služba nyní není dostupná.',
+		errorLoading	: 'Chyba nahrávání služby aplikace z: %s.',
 		notInDic		: 'Není ve slovníku',
 		changeTo		: 'Změnit na',
@@ -483,5 +485,5 @@
 	elementsPath :
 	{
-		eleTitle : '%1 element' // MISSING
+		eleTitle : '%1 objekt'
 	},
 
@@ -539,9 +541,9 @@
 	{
 		label : 'Styl',
-		voiceLabel : 'Styles', // MISSING
-		panelVoiceLabel : 'Select a style', // MISSING
-		panelTitle1 : 'Block Styles', // MISSING
-		panelTitle2 : 'Inline Styles', // MISSING
-		panelTitle3 : 'Object Styles' // MISSING
+		voiceLabel : 'Styly',
+		panelVoiceLabel : 'Výběr stylu',
+		panelTitle1 : 'Blokové styly',
+		panelTitle2 : 'Řádkové styly',
+		panelTitle3 : 'Objektové styly'
 	},
 
@@ -549,7 +551,7 @@
 	{
 		label : 'Formát',
-		voiceLabel : 'Format', // MISSING
+		voiceLabel : 'Formátování',
 		panelTitle : 'Formát',
-		panelVoiceLabel : 'Select a paragraph format', // MISSING
+		panelVoiceLabel : 'Volba formátu odstavce',
 
 		tag_p : 'Normální',
@@ -568,7 +570,7 @@
 	{
 		label : 'Písmo',
-		voiceLabel : 'Font', // MISSING
+		voiceLabel : 'Písmo',
 		panelTitle : 'Písmo',
-		panelVoiceLabel : 'Select a font' // MISSING
+		panelVoiceLabel : 'Volba písma'
 	},
 
@@ -576,7 +578,7 @@
 	{
 		label : 'Velikost',
-		voiceLabel : 'Font Size', // MISSING
+		voiceLabel : 'Velikost písma',
 		panelTitle : 'Velikost',
-		panelVoiceLabel : 'Select a font size' // MISSING
+		panelVoiceLabel : 'Volba velikosti písma'
 	},
 
@@ -635,40 +637,49 @@
 	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 : 'Kontrola pravopisu během psaní (SCAYT)',
+		enable : 'Zapnout SCAYT',
+		disable : 'Vypnout SCAYT',
+		about : 'O aplikaci SCAYT',
+		toggle : 'Vypínač SCAYT',
+		options : 'Nastavení',
+		langs : 'Jazyky',
+		moreSuggestions : 'Více návrhů',
+		ignore : 'Přeskočit',
+		ignoreAll : 'Přeskočit vše',
+		addWord : 'Přidat slovo',
+		emptyDic : 'Název slovníku nesmí být prázdný.',
+		optionsTab : 'Nastavení',
+		languagesTab : 'Jazyky',
+		dictionariesTab : 'Slovníky',
+		aboutTab : 'O aplikaci'
 	},
 
 	about :
 	{
-		title : 'About CKEditor', // MISSING
-		dlgTitle : 'About CKEditor', // MISSING
-		moreInfo : 'For licensing information please visit our web site:', // MISSING
-		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	},
-
-	maximize : 'Maximize', // MISSING
+		title : 'O aplikaci CKEditor',
+		dlgTitle : 'O aplikaci CKEditor',
+		moreInfo : 'Pro informace o lincenci navštivte naši webovou stránku:',
+		copy : 'Copyright &copy; $1. All rights reserved.'
+	},
+
+	maximize : 'Maximalizovat',
+	minimize : 'Minimalizovat',
 
 	fakeobjects :
 	{
-		anchor : 'Anchor', // MISSING
-		flash : 'Flash Animation', // MISSING
-		div : 'Page Break', // MISSING
-		unknown : 'Unknown Object' // MISSING
-	},
-
-	resize : 'Drag to resize' // MISSING
+		anchor : 'Záložka',
+		flash : 'Flash animace',
+		div : 'Zalomení stránky',
+		unknown : 'Neznámý objekt'
+	},
+
+	resize : 'Uchopit pro změnu velikosti',
+
+	colordialog :
+	{
+		title : 'Výběr barvy',
+		highlight : 'Zvýraznit',
+		selected : 'Vybráno',
+		clear : 'Vyčistit'
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/da.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/da.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/da.js	(revision 4394)
@@ -32,5 +32,5 @@
 	 * of reading non-English words. So be careful while translating it.
 	 */
-	editorTitle		: 'Rich text editor, %1', // MISSING
+	editorTitle		: 'Editor, %1',
 
 	// Toolbar buttons without dialogs.
@@ -40,5 +40,5 @@
 	preview			: 'Vis eksempel',
 	cut				: 'Klip',
-	copy			: 'Kopier',
+	copy			: 'Kopiér',
 	paste			: 'Indsæt',
 	print			: 'Udskriv',
@@ -48,12 +48,12 @@
 	selectAll		: 'Vælg alt',
 	removeFormat	: 'Fjern formatering',
-	strike			: 'Overstreget',
+	strike			: 'Gennemstreget',
 	subscript		: 'Sænket skrift',
 	superscript		: 'Hævet skrift',
-	horizontalrule	: 'Indsæt vandret linie',
+	horizontalrule	: 'Indsæt vandret streg',
 	pagebreak		: 'Indsæt sideskift',
 	unlink			: 'Fjern hyperlink',
 	undo			: 'Fortryd',
-	redo			: 'Annuller fortryd',
+	redo			: 'Annullér fortryd',
 
 	// Common messages and labels.
@@ -66,5 +66,5 @@
 		uploadSubmit	: 'Upload',
 		image			: 'Indsæt billede',
-		flash			: 'Flash',
+		flash			: 'Indsæt Flash',
 		form			: 'Indsæt formular',
 		checkbox		: 'Indsæt afkrydsningsfelt',
@@ -84,17 +84,17 @@
 		langCode		: 'Sprogkode',
 		longDescr		: 'Udvidet beskrivelse',
-		cssClass		: 'Typografiark',
+		cssClass		: 'Typografiark (CSS)',
 		advisoryTitle	: 'Titel',
-		cssStyle		: 'Typografi',
+		cssStyle		: 'Typografi (CSS)',
 		ok				: 'OK',
-		cancel			: 'Annuller',
+		cancel			: 'Annullér',
 		generalTab		: 'Generelt',
 		advancedTab		: 'Avanceret',
-		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	: 'Værdien er ikke et tal.',
+		confirmNewPage	: 'Alt indhold, der ikke er blevet gemt, vil gå tabt. Er du sikker på, at du vil indlæse en ny side?',
+		confirmCancel	: 'Nogle af indstillingerne er blevet ændret. Er du sikker på, at du vil lukke vinduet?',
 
 		// 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">, ikke tilgængelig</span>'
 	},
 
@@ -109,6 +109,6 @@
 	link :
 	{
-		toolbar		: 'Indsæt/rediger hyperlink',
-		menu		: 'Rediger hyperlink',
+		toolbar		: 'Indsæt/redigér hyperlink',
+		menu		: 'Redigér hyperlink',
 		title		: 'Egenskaber for hyperlink',
 		info		: 'Generelt',
@@ -116,5 +116,5 @@
 		upload		: 'Upload',
 		advanced	: 'Avanceret',
-		type		: 'Hyperlink type',
+		type		: 'Type',
 		toAnchor	: 'Bogmærke på denne side',
 		toEmail		: 'E-mail',
@@ -125,10 +125,10 @@
 		targetNew	: 'Nyt vindue (_blank)',
 		targetTop	: 'Hele vinduet (_top)',
-		targetSelf	: 'Samme vindue (_self)',
-		targetParent	: 'Overordnet ramme (_parent)',
+		targetSelf	: 'Samme vindue/ramme (_self)',
+		targetParent	: 'Overordnet vindue/ramme (_parent)',
 		targetFrameName	: 'Destinationsvinduets navn',
-		targetPopupName	: 'Pop-up vinduets navn',
-		popupFeatures	: 'Egenskaber for pop-up',
-		popupResizable	: 'Resizable', // MISSING
+		targetPopupName	: 'Popup vinduets navn',
+		popupFeatures	: 'Egenskaber for popup',
+		popupResizable	: 'Justérbar',
 		popupStatusBar	: 'Statuslinje',
 		popupLocationBar	: 'Adresselinje',
@@ -136,5 +136,5 @@
 		popupMenuBar	: 'Menulinje',
 		popupFullScreen	: 'Fuld skærm (IE)',
-		popupScrollBars	: 'Scrollbars',
+		popupScrollBars	: 'Scrollbar',
 		popupDependent	: 'Koblet/dependent (Netscape)',
 		popupWidth		: 'Bredde',
@@ -142,5 +142,5 @@
 		popupHeight		: 'Højde',
 		popupTop		: 'Position fra toppen',
-		id				: 'Id', // MISSING
+		id				: 'Id',
 		langDir			: 'Tekstretning',
 		langDirNotSet	: '<intet valgt>',
@@ -159,10 +159,10 @@
 		anchorName		: 'Efter anker navn',
 		anchorId		: 'Efter element Id',
-		emailAddress	: 'E-mailadresse',
+		emailAddress	: 'E-mail adresse',
 		emailSubject	: 'Emne',
-		emailBody		: 'Brødtekst',
-		noAnchors		: '(Ingen bogmærker dokumentet)',
+		emailBody		: 'Besked',
+		noAnchors		: '(Ingen bogmærker i dokumentet)',
 		noUrl			: 'Indtast hyperlink URL!',
-		noEmail			: 'Indtast e-mailaddresse!'
+		noEmail			: 'Indtast e-mail adresse!'
 	},
 
@@ -170,9 +170,9 @@
 	anchor :
 	{
-		toolbar		: 'Indsæt/rediger bogmærke',
+		toolbar		: 'Indsæt/redigér bogmærke',
 		menu		: 'Egenskaber for bogmærke',
 		title		: 'Egenskaber for bogmærke',
 		name		: 'Bogmærke navn',
-		errorName	: 'Indtast bogmærke navn!'
+		errorName	: 'Indtast bogmærke navn'
 	},
 
@@ -185,10 +185,10 @@
 		findWhat			: 'Søg efter:',
 		replaceWith			: 'Erstat med:',
-		notFoundMsg			: 'Søgeteksten blev ikke fundet!',
+		notFoundMsg			: 'Søgeteksten blev ikke fundet',
 		matchCase			: 'Forskel på store og små bogstaver',
 		matchWord			: 'Kun hele ord',
-		matchCyclic			: 'Match cyclic', // MISSING
+		matchCyclic			: 'Match cyklisk',
 		replaceAll			: 'Erstat alle',
-		replaceSuccessMsg	: '%1 occurrence(s) replaced.' // MISSING
+		replaceSuccessMsg	: '%1 forekomst(er) erstattet.'
 	},
 
@@ -196,5 +196,5 @@
 	table :
 	{
-		toolbar		: 'Table',
+		toolbar		: 'Tabel',
 		title		: 'Egenskaber for tabel',
 		menu		: 'Egenskaber for tabel',
@@ -215,17 +215,17 @@
 		cellPad		: 'Cellemargen',
 		caption		: 'Titel',
-		summary		: 'Resume',
-		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
+		summary		: 'Resumé',
+		headers		: 'Header',
+		headersNone		: 'Ingen',
+		headersColumn	: 'Første kolonne',
+		headersRow		: 'Første række',
+		headersBoth		: 'Begge',
+		invalidRows		: 'Antallet af rækker skal være større end 0.',
+		invalidCols		: 'Antallet af kolonner skal være større end 0.',
+		invalidBorder	: 'Rammetykkelse skal være et tal.',
+		invalidWidth	: 'Tabelbredde skal være et tal.',
+		invalidHeight	: 'Tabelhøjde skal være et tal.',
+		invalidCellSpacing	: 'Celleafstand skal være et tal.',
+		invalidCellPadding	: 'Cellemargen skal være et tal.',
 
 		cell :
@@ -240,25 +240,26 @@
 			splitHorizontal	: 'Del celle vandret',
 			splitVertical	: 'Del celle lodret',
-			title			: 'Cell Properties', // MISSING
-			cellType		: 'Cell Type', // MISSING
-			rowSpan			: 'Rows Span', // MISSING
-			colSpan			: 'Columns Span', // MISSING
-			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
+			title			: 'Celleegenskaber',
+			cellType		: 'Celletype',
+			rowSpan			: 'Række span (rows span)',
+			colSpan			: 'Kolonne span (columns span)',
+			wordWrap		: 'Tekstombrydning',
+			hAlign			: 'Vandret justering',
+			vAlign			: 'Lodret justering',
+			alignTop		: 'Top',
+			alignMiddle		: 'Midt',
+			alignBottom		: 'Bund',
+			alignBaseline	: 'Grundlinje',
+			bgColor			: 'Baggrundsfarve',
+			borderColor		: 'Rammefarve',
+			data			: 'Data',
+			header			: 'Header',
+			yes				: 'Ja',
+			no				: 'Nej',
+			invalidWidth	: 'Cellebredde skal være et tal.',
+			invalidHeight	: 'Cellehøjde skal være et tal.',
+			invalidRowSpan	: 'Række span skal være et heltal.',
+			invalidColSpan	: 'Kolonne span skal være et heltal.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -306,12 +307,12 @@
 		menu		: 'Egenskaber for formular',
 		action		: 'Handling',
-		method		: 'Metod',
-		encoding	: 'Encoding', // MISSING
+		method		: 'Metode',
+		encoding	: 'Kodning (encoding)',
 		target		: 'Mål',
 		targetNotSet	: '<intet valgt>',
 		targetNew	: 'Nyt vindue (_blank)',
 		targetTop	: 'Hele vinduet (_top)',
-		targetSelf	: 'Samme vindue (_self)',
-		targetParent	: 'Overordnet ramme (_parent)'
+		targetSelf	: 'Samme vindue/ramme (_self)',
+		targetParent	: 'Overordnet vindue/ramme (_parent)'
 	},
 
@@ -324,10 +325,10 @@
 		value		: 'Værdi',
 		size		: 'Størrelse',
-		lines		: 'linier',
+		lines		: 'Linjer',
 		chkMulti	: 'Tillad flere valg',
 		opText		: 'Tekst',
 		opValue		: 'Værdi',
 		btnAdd		: 'Tilføj',
-		btnModify	: 'Rediger',
+		btnModify	: 'Redigér',
 		btnUp		: 'Op',
 		btnDown		: 'Ned',
@@ -351,5 +352,5 @@
 		value		: 'Værdi',
 		charWidth	: 'Bredde (tegn)',
-		maxChars	: 'Max antal tegn',
+		maxChars	: 'Max. antal tegn',
 		type		: 'Type',
 		typeText	: 'Tekst',
@@ -381,6 +382,6 @@
 		resetSize	: 'Nulstil størrelse',
 		border	: 'Ramme',
-		hSpace	: 'HMargen',
-		vSpace	: 'VMargen',
+		hSpace	: 'Vandret margen',
+		vSpace	: 'Lodret margen',
 		align		: 'Justering',
 		alignLeft	: 'Venstre',
@@ -396,6 +397,7 @@
 		alertUrl	: 'Indtast stien til billedet',
 		linkTab	: 'Hyperlink',
-		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
+		button2Img	: 'Vil du lave billedknappen om til et almindeligt billede?',
+		img2Button	: 'Vil du lave billedet om til en billedknap?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -404,18 +406,18 @@
 	{
 		properties		: 'Egenskaber for Flash',
-		propertiesTab	: 'Properties', // MISSING
+		propertiesTab	: 'Egenskaber',
 		title		: 'Egenskaber for Flash',
 		chkPlay		: 'Automatisk afspilning',
 		chkLoop		: 'Gentagelse',
 		chkMenu		: 'Vis Flash menu',
-		chkFull		: 'Allow Fullscreen', // MISSING
+		chkFull		: 'Tillad fuldskærm',
  		scale		: 'Skalér',
 		scaleAll		: 'Vis alt',
 		scaleNoBorder	: 'Ingen ramme',
 		scaleFit		: 'Tilpas størrelse',
-		access			: 'Script Access', // MISSING
-		accessAlways	: 'Always', // MISSING
-		accessSameDomain	: 'Same domain', // MISSING
-		accessNever	: 'Never', // MISSING
+		access			: 'Script adgang',
+		accessAlways	: 'Altid',
+		accessSameDomain	: 'Samme domæne',
+		accessNever	: 'Aldrig',
 		align		: 'Justering',
 		alignLeft	: 'Venstre',
@@ -428,26 +430,26 @@
 		alignTextTop	: 'Toppen af teksten',
 		alignTop	: 'Øverst',
-		quality		: 'Quality', // MISSING
-		qualityBest		 : 'Best', // MISSING
-		qualityHigh		 : 'High', // MISSING
-		qualityAutoHigh	 : 'Auto High', // MISSING
-		qualityMedium	 : 'Medium', // MISSING
-		qualityAutoLow	 : 'Auto Low', // MISSING
-		qualityLow		 : 'Low', // MISSING
-		windowModeWindow	 : 'Window', // MISSING
-		windowModeOpaque	 : 'Opaque', // MISSING
-		windowModeTransparent	 : 'Transparent', // MISSING
-		windowMode	: 'Window mode', // MISSING
-		flashvars	: 'Variables for Flash', // MISSING
+		quality		: 'Kvalitet',
+		qualityBest		 : 'Bedste',
+		qualityHigh		 : 'Høj',
+		qualityAutoHigh	 : 'Auto høj',
+		qualityMedium	 : 'Medium',
+		qualityAutoLow	 : 'Auto lav',
+		qualityLow		 : 'Lav',
+		windowModeWindow	 : 'Vindue',
+		windowModeOpaque	 : 'Gennemsigtig (opaque)',
+		windowModeTransparent	 : 'Transparent',
+		windowMode	: 'Vinduestilstand',
+		flashvars	: 'Variabler for Flash',
 		bgcolor	: 'Baggrundsfarve',
 		width	: 'Bredde',
 		height	: 'Højde',
-		hSpace	: 'HMargen',
-		vSpace	: 'VMargen',
+		hSpace	: 'Vandret margen',
+		vSpace	: 'Lodret margen',
 		validateSrc : 'Indtast hyperlink 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 : 'Bredde skal være et tal.',
+		validateHeight : 'Højde skal være et tal.',
+		validateHSpace : 'Vandret margen skal være et tal.',
+		validateVSpace : 'Lodret margen skal være et tal.'
 	},
 
@@ -456,21 +458,21 @@
 	{
 		toolbar			: 'Stavekontrol',
-		title			: 'Spell Check', // MISSING
-		notAvailable	: 'Sorry, but service is unavailable now.', // MISSING
-		errorLoading	: 'Error loading application service host: %s.', // MISSING
+		title			: 'Stavekontrol',
+		notAvailable	: 'Stavekontrol er desværre ikke tilgængelig.',
+		errorLoading	: 'Fejl ved indlæsning af host: %s.',
 		notInDic		: 'Ikke i ordbogen',
 		changeTo		: 'Forslag',
-		btnIgnore		: 'Ignorer',
-		btnIgnoreAll	: 'Ignorer alle',
+		btnIgnore		: 'Ignorér',
+		btnIgnoreAll	: 'Ignorér alle',
 		btnReplace		: 'Erstat',
 		btnReplaceAll	: 'Erstat alle',
 		btnUndo			: 'Tilbage',
-		noSuggestions	: '- ingen forslag -',
-		progress		: 'Stavekontrolen arbejder...',
+		noSuggestions	: '(ingen forslag)',
+		progress		: 'Stavekontrollen arbejder...',
 		noMispell		: 'Stavekontrol færdig: Ingen fejl fundet',
 		noChanges		: 'Stavekontrol færdig: Ingen ord ændret',
 		oneChange		: 'Stavekontrol færdig: Et ord ændret',
 		manyChanges		: 'Stavekontrol færdig: %1 ord ændret',
-		ieSpellDownload	: 'Stavekontrol ikke installeret.<br>Vil du hente den nu?'
+		ieSpellDownload	: 'Stavekontrol ikke installeret. Vil du installere den nu?'
 	},
 
@@ -483,5 +485,5 @@
 	elementsPath :
 	{
-		eleTitle : '%1 element' // MISSING
+		eleTitle : '%1 element'
 	},
 
@@ -504,8 +506,8 @@
 	{
 		title		: 'Indsæt',
-		cutError	: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at klippe tekst automatisk!<br>Brug i stedet tastaturet til at klippe teksten (Ctrl+X).',
-		copyError	: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at kopiere tekst automatisk!<br>Brug i stedet tastaturet til at kopiere teksten (Ctrl+C).',
-		pasteMsg	: 'Indsæt i feltet herunder (<STRONG>Ctrl+V</STRONG>) og klik <STRONG>OK</STRONG>.',
-		securityMsg	: 'På grund af browserens sikkerhedsindstillinger kan editoren ikke tilgå udklipsholderen direkte. Du skal indsætte udklipsholderens indhold i dette vindue igen.'
+		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>.',
+		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.'
 	},
 
@@ -514,7 +516,7 @@
 		toolbar : 'Indsæt fra Word',
 		title : 'Indsæt fra Word',
-		advice : 'Indsæt i feltet herunder (<STRONG>Ctrl+V</STRONG>) og klik <STRONG>OK</STRONG>.',
-		ignoreFontFace : 'Ignorer font definitioner',
-		removeStyle : 'Ignorer typografi'
+		advice : 'Indsæt i feltet herunder (<STRONG>Ctrl+V</STRONG>) og klik på <STRONG>OK</STRONG>.',
+		ignoreFontFace : 'Ignorér skrifttypedefinitioner',
+		removeStyle : 'Ignorér typografi'
 	},
 
@@ -530,18 +532,18 @@
 		title : 'Indholdsskabeloner',
 		insertOption: 'Erstat det faktiske indhold',
-		selectPromptMsg: 'Vælg den skabelon, som skal åbnes i editoren.<br>(Nuværende indhold vil blive overskrevet!):',
-		emptyListMsg : '(Der er ikke defineret nogen skabelon!)'
-	},
-
-	showBlocks : 'Show Blocks', // MISSING
+		selectPromptMsg: 'Vælg den skabelon, som skal åbnes i editoren (nuværende indhold vil blive overskrevet):',
+		emptyListMsg : '(Der er ikke defineret nogen skabelon)'
+	},
+
+	showBlocks : 'Vis afsnitsmærker',
 
 	stylesCombo :
 	{
 		label : 'Typografi',
-		voiceLabel : 'Styles', // MISSING
-		panelVoiceLabel : 'Select a style', // MISSING
-		panelTitle1 : 'Block Styles', // MISSING
-		panelTitle2 : 'Inline Styles', // MISSING
-		panelTitle3 : 'Object Styles' // MISSING
+		voiceLabel : 'Typografi',
+		panelVoiceLabel : 'Vælg typografi',
+		panelTitle1 : 'Block typografi',
+		panelTitle2 : 'Inline typografi',
+		panelTitle3 : 'Object typografi'
 	},
 
@@ -549,7 +551,7 @@
 	{
 		label : 'Formatering',
-		voiceLabel : 'Format', // MISSING
+		voiceLabel : 'Formatering',
 		panelTitle : 'Formatering',
-		panelVoiceLabel : 'Select a paragraph format', // MISSING
+		panelVoiceLabel : 'Vælg afsnitsformatering',
 
 		tag_p : 'Normal',
@@ -568,7 +570,7 @@
 	{
 		label : 'Skrifttype',
-		voiceLabel : 'Font', // MISSING
+		voiceLabel : 'Skrifttype',
 		panelTitle : 'Skrifttype',
-		panelVoiceLabel : 'Select a font' // MISSING
+		panelVoiceLabel : 'Vælg skrifttype'
 	},
 
@@ -576,7 +578,7 @@
 	{
 		label : 'Skriftstørrelse',
-		voiceLabel : 'Font Size', // MISSING
+		voiceLabel : 'Skriftstørrelse',
 		panelTitle : 'Skriftstørrelse',
-		panelVoiceLabel : 'Select a font size' // MISSING
+		panelVoiceLabel : 'Vælg skriftstørrelse'
 	},
 
@@ -635,40 +637,49 @@
 	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 : 'Stavekontrol mens du skriver',
+		enable : 'Aktivér SCAYT',
+		disable : 'Deaktivér SCAYT',
+		about : 'Om SCAYT',
+		toggle : 'Skift/toggle SCAYT',
+		options : 'Indstillinger',
+		langs : 'Sprog',
+		moreSuggestions : 'Flere forslag',
+		ignore : 'Ignorér',
+		ignoreAll : 'Ignorér alle',
+		addWord : 'Tilføj ord',
+		emptyDic : 'Ordbogsnavn må ikke være tom.',
+		optionsTab : 'Indstillinger',
+		languagesTab : 'Sprog',
+		dictionariesTab : 'Ordbøger',
+		aboutTab : 'Om'
 	},
 
 	about :
 	{
-		title : 'About CKEditor', // MISSING
-		dlgTitle : 'About CKEditor', // MISSING
-		moreInfo : 'For licensing information please visit our web site:', // MISSING
-		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	},
-
-	maximize : 'Maximize', // MISSING
+		title : 'Om CKEditor',
+		dlgTitle : 'Om CKEditor',
+		moreInfo : 'For informationer omkring licens, se venligst vores hjemmeside (på engelsk):',
+		copy : 'Copyright &copy; $1. Alle rettigheder forbeholdes.'
+	},
+
+	maximize : 'Maximér',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
 	{
-		anchor : 'Anchor', // MISSING
-		flash : 'Flash Animation', // MISSING
-		div : 'Page Break', // MISSING
-		unknown : 'Unknown Object' // MISSING
-	},
-
-	resize : 'Drag to resize' // MISSING
+		anchor : 'Anker',
+		flash : 'Flashanimation',
+		div : 'Sideskift',
+		unknown : 'Ukendt objekt'
+	},
+
+	resize : 'Træk for at skalere',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/de.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/de.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/de.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'Zellenhöhe muß eine Zahl sein.',
 			invalidRowSpan	: '"Anzahl Zeilen verbinden" muss eine Ganzzahl sein.',
-			invalidColSpan	: '"Anzahl Spalten verbinden" muss eine Ganzzahl sein.'
+			invalidColSpan	: '"Anzahl Spalten verbinden" muss eine Ganzzahl sein.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Link',
 		button2Img	: 'Möchten Sie den gewählten Bild-Button in ein einfaches Bild umwandeln?',
-		img2Button	: 'Möchten Sie das gewählten Bild in einen Bild-Button umwandeln?'
+		img2Button	: 'Möchten Sie das gewählten Bild in einen Bild-Button umwandeln?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -591,44 +593,44 @@
 	colors :
 	{
-		'000' : 'Schwarz',
-		'800000' : 'Kastanienbraun',
-		'8B4513' : 'Braun',
-		'2F4F4F' : 'Dunkles Schiefergrau',
-		'008080' : 'Blaugrün',
+		'000' : 'Black',
+		'800000' : 'Maroon',
+		'8B4513' : 'Saddle Brown',
+		'2F4F4F' : 'Dark Slate Gray',
+		'008080' : 'Teal',
 		'000080' : 'Navy',
 		'4B0082' : 'Indigo',
-		'696969' : 'Dunkelgrau',
-		'B22222' : 'Ziegelrot',
-		'A52A2A' : 'Braun',
-		'DAA520' : 'Goldgelb',
-		'006400' : 'Dunkelgrün',
-		'40E0D0' : 'Türkis',
-		'0000CD' : 'Medium Blau',
-		'800080' : 'Lila',
-		'808080' : 'Grau',
-		'F00' : 'Rot',
-		'FF8C00' : 'Dunkelorange',
+		'696969' : 'Dim Gray',
+		'B22222' : 'Fire Brick',
+		'A52A2A' : 'Brown',
+		'DAA520' : 'Golden Rod',
+		'006400' : 'Dark Green',
+		'40E0D0' : 'Turquoise',
+		'0000CD' : 'Medium Blue',
+		'800080' : 'Purple',
+		'808080' : 'Gray',
+		'F00' : 'Red',
+		'FF8C00' : 'Dark Orange',
 		'FFD700' : 'Gold',
-		'008000' : 'Grün',
+		'008000' : 'Green',
 		'0FF' : 'Cyan',
-		'00F' : 'Blau',
-		'EE82EE' : 'Hellviolett',
-		'A9A9A9' : 'Dunkelgrau',
-		'FFA07A' : 'Helles Lachsrosa',
+		'00F' : 'Blue',
+		'EE82EE' : 'Violet',
+		'A9A9A9' : 'Dark Gray',
+		'FFA07A' : 'Light Salmon',
 		'FFA500' : 'Orange',
-		'FFFF00' : 'Gelb',
+		'FFFF00' : 'Yellow',
 		'00FF00' : 'Lime',
-		'AFEEEE' : 'Blaß-Türkis',
-		'ADD8E6' : 'Hellblau',
-		'DDA0DD' : 'Pflaumenblau',
-		'D3D3D3' : 'Hellgrau',
-		'FFF0F5' : 'Lavendel',
-		'FAEBD7' : 'Antik Weiß',
-		'FFFFE0' : 'Hellgelb',
-		'F0FFF0' : 'Honigtau',
-		'F0FFFF' : 'Azurblau',
-		'F0F8FF' : 'Alice Blau',
-		'E6E6FA' : 'Lavendel',
-		'FFF' : 'Weiß'
+		'AFEEEE' : 'Pale Turquoise',
+		'ADD8E6' : 'Light Blue',
+		'DDA0DD' : 'Plum',
+		'D3D3D3' : 'Light Grey',
+		'FFF0F5' : 'Lavender Blush',
+		'FAEBD7' : 'Antique White',
+		'FFFFE0' : 'Light Yellow',
+		'F0FFF0' : 'Honeydew',
+		'F0FFFF' : 'Azure',
+		'F0F8FF' : 'Alice Blue',
+		'E6E6FA' : 'Lavender',
+		'FFF' : 'White'
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximieren',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Zum Vergrößern ziehen'
+	resize : 'Zum Vergrößern ziehen',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/el.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/el.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/el.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Σύνδεσμος',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/en-au.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/en-au.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/en-au.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'Cell height must be a number.',
 			invalidRowSpan	: 'Rows span must be a whole number.',
-			invalidColSpan	: 'Columns span must be a whole number.'
+			invalidColSpan	: 'Columns span must be a whole number.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Link',
 		button2Img	: 'Do you want to transform the selected image button on a simple image?',
-		img2Button	: 'Do you want to transform the selected image on a image button?'
+		img2Button	: 'Do you want to transform the selected image on a image button?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/en-ca.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/en-ca.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/en-ca.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'Cell height must be a number.',
 			invalidRowSpan	: 'Rows span must be a whole number.',
-			invalidColSpan	: 'Columns span must be a whole number.'
+			invalidColSpan	: 'Columns span must be a whole number.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Link',
 		button2Img	: 'Do you want to transform the selected image button on a simple image?',
-		img2Button	: 'Do you want to transform the selected image on a image button?'
+		img2Button	: 'Do you want to transform the selected image on a image button?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/en-uk.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/en-uk.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/en-uk.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'Cell height must be a number.',
 			invalidRowSpan	: 'Rows span must be a whole number.',
-			invalidColSpan	: 'Columns span must be a whole number.'
+			invalidColSpan	: 'Columns span must be a whole number.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Link',
 		button2Img	: 'Do you want to transform the selected image button on a simple image?',
-		img2Button	: 'Do you want to transform the selected image on a image button?'
+		img2Button	: 'Do you want to transform the selected image on a image button?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/en.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/en.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/en.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'Cell height must be a number.',
 			invalidRowSpan	: 'Rows span must be a whole number.',
-			invalidColSpan	: 'Columns span must be a whole number.'
+			invalidColSpan	: 'Columns span must be a whole number.',
+			chooseColor : 'Choose'
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Link',
 		button2Img	: 'Do you want to transform the selected image button on a simple image?',
-		img2Button	: 'Do you want to transform the selected image on a image button?'
+		img2Button	: 'Do you want to transform the selected image on a image button?',
+		urlMissing : 'Image source URL is missing.'
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize',
+	minimize : 'Minimize',
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize'
+	resize : 'Drag to resize',
+
+	colordialog :
+	{
+		title : 'Select color',
+		highlight : 'Highlight',
+		selected : 'Selected',
+		clear : 'Clear'
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/eo.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/eo.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/eo.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Link', // MISSING
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/es.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/es.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/es.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'La altura de celda debe ser un número.',
 			invalidRowSpan	: 'La expansión de filas debe ser un número entero.',
-			invalidColSpan	: 'La expansión de columnas debe ser un número entero.'
+			invalidColSpan	: 'La expansión de columnas debe ser un número entero.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Vínculo',
 		button2Img	: '¿Desea convertir el botón de imagen en una simple imagen?',
-		img2Button	: '¿Desea convertir la imagen en un botón de imagen?'
+		img2Button	: '¿Desea convertir la imagen en un botón de imagen?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximizar',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Arrastre para redimensionar'
+	resize : 'Arrastre para redimensionar',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/et.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/et.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/et.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Link',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/eu.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/eu.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/eu.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'Gelaxkaren altuera zenbaki bat izan behar da.',
 			invalidRowSpan	: 'Lerroen hedapena zenbaki osoa izan behar da.',
-			invalidColSpan	: 'Zutabeen hedapena zenbaki osoa izan behar da.'
+			invalidColSpan	: 'Zutabeen hedapena zenbaki osoa izan behar da.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Esteka',
 		button2Img	: 'Aukeratutako irudi botoia, irudi normal batean eraldatu nahi duzu?',
-		img2Button	: 'Aukeratutako irudia, irudi botoi batean eraldatu nahi duzu?'
+		img2Button	: 'Aukeratutako irudia, irudi botoi batean eraldatu nahi duzu?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximizatu',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Arrastatu tamaina aldatzeko'
+	resize : 'Arrastatu tamaina aldatzeko',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/fa.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/fa.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/fa.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'پیوند',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/fi.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/fi.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/fi.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Linkki',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/fo.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/fo.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/fo.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Tilknýti',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/fr-ca.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/fr-ca.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/fr-ca.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Lien',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/fr.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/fr.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/fr.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'La Hauteur de Cellule doit être un nombre.',
 			invalidRowSpan	: 'La fusion de lignes doit être un nombre entier.',
-			invalidColSpan	: 'La fusion de colonnes doit être un nombre entier.'
+			invalidColSpan	: 'La fusion de colonnes doit être un nombre entier.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Lien',
 		button2Img	: 'Voulez-vous transformer le bouton image sélectionné en simple image?',
-		img2Button	: 'Voulez-vous transformer l\'image en bouton image?'
+		img2Button	: 'Voulez-vous transformer l\'image en bouton image?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Agrandir',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Glisser pour modifier la taille'
+	resize : 'Glisser pour modifier la taille',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/gl.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/gl.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/gl.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Ligazón',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/gu.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/gu.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/gu.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'લિંક',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/he.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/he.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/he.js	(revision 4394)
@@ -32,5 +32,5 @@
 	 * of reading non-English words. So be careful while translating it.
 	 */
-	editorTitle		: 'Rich text editor, %1', // MISSING
+	editorTitle		: 'עורך טקסט עשיר, %1',
 
 	// Toolbar buttons without dialogs.
@@ -91,10 +91,10 @@
 		generalTab		: 'כללי',
 		advancedTab		: 'אפשרויות מתקדמות',
-		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	: 'הערך חייב להיות מספר.',
+		confirmNewPage	: 'כל השינויים שלא נשמרו יאבדו. האם להעלות דף חדש?',
+		confirmCancel	: 'חלק מהאפשרויות שונו, האם לסגור את הדיאלוג. ?',
 
 		// 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">, לא זמין</span>'
 	},
 
@@ -130,5 +130,5 @@
 		targetPopupName	: 'שם החלון הקופץ',
 		popupFeatures	: 'תכונות החלון הקופץ',
-		popupResizable	: 'Resizable', // MISSING
+		popupResizable	: 'שינוי גודל',
 		popupStatusBar	: 'סרגל חיווי',
 		popupLocationBar	: 'סרגל כתובת',
@@ -142,5 +142,5 @@
 		popupHeight		: 'גובה',
 		popupTop		: 'מיקום צד עליון',
-		id				: 'Id', // MISSING
+		id				: 'זיהוי (Id)',
 		langDir			: 'כיוון שפה',
 		langDirNotSet	: '<לא נקבע>',
@@ -188,7 +188,7 @@
 		matchCase			: 'התאמת סוג אותיות (Case)',
 		matchWord			: 'התאמה למילה המלאה',
-		matchCyclic			: 'Match cyclic', // MISSING
+		matchCyclic			: 'התאמה מחזורית',
 		replaceAll			: 'החלפה בכל העמוד',
-		replaceSuccessMsg	: '%1 occurrence(s) replaced.' // MISSING
+		replaceSuccessMsg	: '%1 טקסטים הוחלפו.'
 	},
 
@@ -221,11 +221,11 @@
 		headersRow		: 'שורה ראשונה',
 		headersBoth		: 'שניהם',
-		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
+		invalidRows		: 'מספר השורות חייב להיות מספר גדול מ 0.',
+		invalidCols		: 'מספר העמודות חייב להיות מספר גדול מ 0.',
+		invalidBorder	: 'גודל מסגרת חייב להיות מספר.',
+		invalidWidth	: 'רוחה טבלה חייב להיות רוחב.',
+		invalidHeight	: 'גובה טבלה חייב להיות מספר.',
+		invalidCellSpacing	: 'ריווח תאים חייב להיות מספר.',
+		invalidCellPadding	: 'ריפוד תאים חייב להיות מספר.',
 
 		cell :
@@ -241,24 +241,25 @@
 			splitVertical	: 'פצל תא אנכית',
 			title			: 'תכונות התא',
-			cellType		: 'Cell Type', // MISSING
-			rowSpan			: 'Rows Span', // MISSING
-			colSpan			: 'Columns Span', // MISSING
-			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
+			cellType		: 'סוג תא',
+			rowSpan			: 'מתיחת שורות',
+			colSpan			: 'מתיחת תאים',
+			wordWrap		: 'מניעת גלישת שורות',
+			hAlign			: 'יישור אופקי',
+			vAlign			: 'יישור אנכי',
+			alignTop		: 'למעלה',
+			alignMiddle		: 'מרכז',
+			alignBottom		: 'למטה',
+			alignBaseline	: 'שורת בסיס',
+			bgColor			: 'צבע רקע',
+			borderColor		: 'צבע מסגרת',
+			data			: 'מידע',
+			header			: 'כותרת',
+			yes				: 'כן',
+			no				: 'לא',
+			invalidWidth	: 'רוחב תא חייב להיות מספר.',
+			invalidHeight	: 'גובה תא חייב להיות מספר.',
+			invalidRowSpan	: 'מתיחת שורות חייב להיות מספר שלם.',
+			invalidColSpan	: 'מתיחת עמודות חייב להיות מספר שלם.',
+			chooseColor : 'בחר'
 		},
 
@@ -307,5 +308,5 @@
 		action		: 'שלח אל',
 		method		: 'סוג שליחה',
-		encoding	: 'Encoding', // MISSING
+		encoding	: 'קידוד',
 		target		: 'מטרה',
 		targetNotSet	: '<לא נקבע>',
@@ -396,6 +397,7 @@
 		alertUrl	: 'נא להקליד את כתובת התמונה',
 		linkTab	: 'קישור',
-		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
+		button2Img	: 'האם להפוך את תמונת כפתור לתמונה פשוטה?',
+		img2Button	: 'האם להפוך את התמונה לכפתור תמונה?',
+		urlMissing : 'כתובת התמונה חסרה.'
 	},
 
@@ -404,18 +406,18 @@
 	{
 		properties		: 'מאפייני פלאש',
-		propertiesTab	: 'Properties', // MISSING
+		propertiesTab	: 'מאפיינים',
 		title		: 'מאפיני פלאש',
 		chkPlay		: 'נגן אוטומטי',
 		chkLoop		: 'לולאה',
 		chkMenu		: 'אפשר תפריט פלאש',
-		chkFull		: 'Allow Fullscreen', // MISSING
+		chkFull		: 'אפשר חלון מלא',
  		scale		: 'גודל',
 		scaleAll		: 'הצג הכל',
 		scaleNoBorder	: 'ללא גבולות',
 		scaleFit		: 'התאמה מושלמת',
-		access			: 'Script Access', // MISSING
-		accessAlways	: 'Always', // MISSING
-		accessSameDomain	: 'Same domain', // MISSING
-		accessNever	: 'Never', // MISSING
+		access			: 'גישת סקריפט',
+		accessAlways	: 'תמיד',
+		accessSameDomain	: 'דומיין זהה',
+		accessNever	: 'אף פעם',
 		align		: 'יישור',
 		alignLeft	: 'לשמאל',
@@ -428,16 +430,16 @@
 		alignTextTop	: 'לראש הטקסט',
 		alignTop	: 'למעלה',
-		quality		: 'Quality', // MISSING
-		qualityBest		 : 'Best', // MISSING
-		qualityHigh		 : 'High', // MISSING
-		qualityAutoHigh	 : 'Auto High', // MISSING
-		qualityMedium	 : 'Medium', // MISSING
-		qualityAutoLow	 : 'Auto Low', // MISSING
-		qualityLow		 : 'Low', // MISSING
-		windowModeWindow	 : 'Window', // MISSING
-		windowModeOpaque	 : 'Opaque', // MISSING
-		windowModeTransparent	 : 'Transparent', // MISSING
-		windowMode	: 'Window mode', // MISSING
-		flashvars	: 'Variables for Flash', // MISSING
+		quality		: 'איכות',
+		qualityBest		 : 'מעולה',
+		qualityHigh		 : 'גבוהה',
+		qualityAutoHigh	 : 'אוטומטית גבוהה',
+		qualityMedium	 : 'ממוצעת',
+		qualityAutoLow	 : 'אוטומטית נמוך',
+		qualityLow		 : 'נמוך',
+		windowModeWindow	 : 'חלון',
+		windowModeOpaque	 : 'אטום',
+		windowModeTransparent	 : 'שקוף',
+		windowMode	: 'מצב חלון',
+		flashvars	: 'משתנים לפלאש',
 		bgcolor	: 'צבע רקע',
 		width	: 'רוחב',
@@ -446,8 +448,8 @@
 		vSpace	: 'מרווח אנכי',
 		validateSrc : 'נא להקליד את כתובת הקישור (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 : 'רוחב חייב להיות מספר.',
+		validateHeight : 'גובהה חייב להיות מספר.',
+		validateHSpace : 'ריווח אופקי חייב להיות מספר.',
+		validateVSpace : 'ריווח אנחי חייב להיות מספר.'
 	},
 
@@ -456,7 +458,7 @@
 	{
 		toolbar			: 'בדיקת איות',
-		title			: 'Spell Check', // MISSING
-		notAvailable	: 'Sorry, but service is unavailable now.', // MISSING
-		errorLoading	: 'Error loading application service host: %s.', // MISSING
+		title			: 'בדיקת איות',
+		notAvailable	: 'מצטערים לא נמצא שירות זמין.',
+		errorLoading	: 'שגיעה בהעלאת שירת אפליקציה: %s.',
 		notInDic		: 'לא נמצא במילון',
 		changeTo		: 'שנה ל',
@@ -483,5 +485,5 @@
 	elementsPath :
 	{
-		eleTitle : '%1 element' // MISSING
+		eleTitle : '%1 אלמנט'
 	},
 
@@ -539,9 +541,9 @@
 	{
 		label : 'סגנון',
-		voiceLabel : 'Styles', // MISSING
-		panelVoiceLabel : 'Select a style', // MISSING
-		panelTitle1 : 'Block Styles', // MISSING
-		panelTitle2 : 'Inline Styles', // MISSING
-		panelTitle3 : 'Object Styles' // MISSING
+		voiceLabel : 'סגנונות',
+		panelVoiceLabel : 'בחר סגנון',
+		panelTitle1 : 'סיגנונות בלוק',
+		panelTitle2 : 'סגנונות רצף',
+		panelTitle3 : 'סגנונות אובייקט'
 	},
 
@@ -549,7 +551,7 @@
 	{
 		label : 'עיצוב',
-		voiceLabel : 'Format', // MISSING
+		voiceLabel : 'עיצוב',
 		panelTitle : 'עיצוב',
-		panelVoiceLabel : 'Select a paragraph format', // MISSING
+		panelVoiceLabel : 'בחר פיסקת עיצוב',
 
 		tag_p : 'נורמלי',
@@ -562,5 +564,5 @@
 		tag_h5 : 'כותרת 5',
 		tag_h6 : 'כותרת 6',
-		tag_div : 'Normal (DIV)' // MISSING
+		tag_div : 'נורמלי (DIV)'
 	},
 
@@ -568,7 +570,7 @@
 	{
 		label : 'גופן',
-		voiceLabel : 'Font', // MISSING
+		voiceLabel : 'גופן',
 		panelTitle : 'גופן',
-		panelVoiceLabel : 'Select a font' // MISSING
+		panelVoiceLabel : 'בחר גופן'
 	},
 
@@ -576,7 +578,7 @@
 	{
 		label : 'גודל',
-		voiceLabel : 'Font Size', // MISSING
+		voiceLabel : 'גודל גופן',
 		panelTitle : 'גודל',
-		panelVoiceLabel : 'Select a font size' // MISSING
+		panelVoiceLabel : 'בחר גודל גופן'
 	},
 
@@ -635,40 +637,49 @@
 	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 : 'בדיקת איות בזמן כתיבה',
+		enable : 'אפשר SCAYT',
+		disable : 'בטל SCAYT',
+		about : 'אודות SCAYT',
+		toggle : 'שינוי SCAYT',
+		options : 'אפשרויות',
+		langs : 'שפות',
+		moreSuggestions : 'עוד הצעות',
+		ignore : 'התעלם',
+		ignoreAll : 'התעלם מהכל',
+		addWord : 'הודף מילה',
+		emptyDic : 'אסור לשם המילון להיות ריק.',
+		optionsTab : 'אפשרויות',
+		languagesTab : 'שפות',
+		dictionariesTab : 'מילון',
+		aboutTab : 'אודות'
 	},
 
 	about :
 	{
-		title : 'About CKEditor', // MISSING
-		dlgTitle : 'About CKEditor', // MISSING
-		moreInfo : 'For licensing information please visit our web site:', // MISSING
-		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	},
-
-	maximize : 'Maximize', // MISSING
+		title : 'אודות CKEditor',
+		dlgTitle : 'אודות CKEditor',
+		moreInfo : 'לרישוי אנה בקרו באתר שלנו:',
+		copy : 'Copyright &copy; $1. כל הזכויות שמורות.'
+	},
+
+	maximize : 'להגדיל למקסימום',
+	minimize : 'הקטן למינימום',
 
 	fakeobjects :
 	{
-		anchor : 'Anchor', // MISSING
-		flash : 'Flash Animation', // MISSING
-		div : 'Page Break', // MISSING
-		unknown : 'Unknown Object' // MISSING
-	},
-
-	resize : 'Drag to resize' // MISSING
+		anchor : 'עוגן',
+		flash : 'אנימצית פלאש',
+		div : 'שבירת דף',
+		unknown : 'אובייקט לא ידוע'
+	},
+
+	resize : 'גרור בכדי לשנות גודל',
+
+	colordialog :
+	{
+		title : 'בחר צבע',
+		highlight : 'סמן',
+		selected : 'נבחר',
+		clear : 'נקה'
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/hi.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/hi.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/hi.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'लिंक',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/hr.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/hr.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/hr.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'Visina ćelije mora biti broj.',
 			invalidRowSpan	: 'Rows span mora biti cijeli broj.',
-			invalidColSpan	: 'Columns span mora biti cijeli broj.'
+			invalidColSpan	: 'Columns span mora biti cijeli broj.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Link',
 		button2Img	: 'Želite li promijeniti odabrani gumb u jednostavnu sliku?',
-		img2Button	: 'Želite li promijeniti odabranu sliku u gumb?'
+		img2Button	: 'Želite li promijeniti odabranu sliku u gumb?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Povećaj',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Povuci za promjenu veličine'
+	resize : 'Povuci za promjenu veličine',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/hu.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/hu.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/hu.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Hivatkozás',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/is.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/is.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/is.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Stikla',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/it.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/it.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/it.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'L\'altezza della cella dev\'essere un numero.',
 			invalidRowSpan	: 'Il numero di righe dev\'essere un numero intero.',
-			invalidColSpan	: 'Il numero di colonne dev\'essere un numero intero.'
+			invalidColSpan	: 'Il numero di colonne dev\'essere un numero intero.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Collegamento',
 		button2Img	: 'Vuoi trasformare il bottone immagine selezionato in un\'immagine semplice?',
-		img2Button	: 'Vuoi trasferomare l\'immagine selezionata in un bottone immagine?'
+		img2Button	: 'Vuoi trasferomare l\'immagine selezionata in un bottone immagine?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Massimizza',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Trascina per ridimensionare'
+	resize : 'Trascina per ridimensionare',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/ja.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/ja.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/ja.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'セル高さは数値で入力してください。',
 			invalidRowSpan	: '縦幅(行数)は数値で入力してください。',
-			invalidColSpan	: '横幅(列数)は数値で入力してください。'
+			invalidColSpan	: '横幅(列数)は数値で入力してください。',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'リンク',
 		button2Img	: '選択したボタンを画像に置き換えますか？',
-		img2Button	: '選択した画像をボタンに置き換えますか？'
+		img2Button	: '選択した画像をボタンに置き換えますか？',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : '最大化',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'ドラックしてリサイズ'
+	resize : 'ドラックしてリサイズ',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/km.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/km.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/km.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'ឈ្នាប់',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/ko.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/ko.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/ko.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: '링크',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/lt.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/lt.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/lt.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Nuoroda',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/lv.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/lv.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/lv.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Hipersaite',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/mn.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/mn.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/mn.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Линк',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/ms.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/ms.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/ms.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Sambungan',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/nb.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/nb.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/nb.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Lenke',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/nl.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/nl.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/nl.js	(revision 4394)
@@ -32,5 +32,5 @@
 	 * of reading non-English words. So be careful while translating it.
 	 */
-	editorTitle		: 'Rich text editor, %1', // MISSING
+	editorTitle		: 'Tekstverwerker, %1',
 
 	// Toolbar buttons without dialogs.
@@ -91,10 +91,10 @@
 		generalTab		: 'Algemeen',
 		advancedTab		: 'Geavanceerd',
-		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	: 'Deze waarde is geen geldig getal.',
+		confirmNewPage	: 'Alle aangebrachte wijzigingen gaan verloren. Weet u zeker dat u een nieuwe pagina wilt openen?',
+		confirmCancel	: 'Enkele opties zijn gewijzigd. Weet u zeker dat u dit dialoogvenster wilt sluiten?',
 
 		// 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">, niet beschikbaar</span>'
 	},
 
@@ -130,5 +130,5 @@
 		targetPopupName	: 'Naam popupvenster',
 		popupFeatures	: 'Instellingen popupvenster',
-		popupResizable	: 'Resizable', // MISSING
+		popupResizable	: 'Herschaalbaar',
 		popupStatusBar	: 'Statusbalk',
 		popupLocationBar	: 'Locatiemenu',
@@ -142,5 +142,5 @@
 		popupHeight		: 'Hoogte',
 		popupTop		: 'Positie boven',
-		id				: 'Id', // MISSING
+		id				: 'Id',
 		langDir			: 'Schrijfrichting',
 		langDirNotSet	: '<niet ingevuld>',
@@ -188,7 +188,7 @@
 		matchCase			: 'Hoofdlettergevoelig',
 		matchWord			: 'Hele woord moet voorkomen',
-		matchCyclic			: 'Match cyclic', // MISSING
+		matchCyclic			: 'Doorlopend zoeken',
 		replaceAll			: 'Alles vervangen',
-		replaceSuccessMsg	: '%1 occurrence(s) replaced.' // MISSING
+		replaceSuccessMsg	: '%1 resulaten vervangen.'
 	},
 
@@ -213,19 +213,19 @@
 		height		: 'Hoogte',
 		cellSpace	: 'Afstand tussen cellen',
-		cellPad		: 'Afstand vanaf rand cel',
+		cellPad		: 'Ruimte in de cel',
 		caption		: 'Naam',
 		summary		: 'Samenvatting',
-		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
+		headers		: 'Koppen',
+		headersNone		: 'Geen',
+		headersColumn	: 'Eerste kolom',
+		headersRow		: 'Eerste rij',
+		headersBoth		: 'Beide',
+		invalidRows		: 'Het aantal rijen moet een getal zijn groter dan 0.',
+		invalidCols		: 'Het aantal kolommen moet een getal zijn groter dan 0.',
+		invalidBorder	: 'De rand breedte moet een getal zijn.',
+		invalidWidth	: 'De tabel breedte moet een getal zijn.',
+		invalidHeight	: 'De tabel hoogte moet een getal zijn.',
+		invalidCellSpacing	: 'Afstand tussen cellen moet een getal zijn.',
+		invalidCellPadding	: 'Ruimte in de cel moet een getal zijn.',
 
 		cell :
@@ -240,25 +240,26 @@
 			splitHorizontal	: 'Splits cellen horizontaal',
 			splitVertical	: 'Splits cellen verticaal',
-			title			: 'Cell Properties', // MISSING
-			cellType		: 'Cell Type', // MISSING
-			rowSpan			: 'Rows Span', // MISSING
-			colSpan			: 'Columns Span', // MISSING
-			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
+			title			: 'Cel eigenschappen',
+			cellType		: 'Cel type',
+			rowSpan			: 'Rijen samenvoegen',
+			colSpan			: 'Kolommen samenvoegen',
+			wordWrap		: 'Automatische terugloop',
+			hAlign			: 'Horizontale uitlijning',
+			vAlign			: 'Verticale uitlijning',
+			alignTop		: 'Boven',
+			alignMiddle		: 'Midden',
+			alignBottom		: 'Onder',
+			alignBaseline	: 'Basislijn',
+			bgColor			: 'Achtergrondkleur',
+			borderColor		: 'Kleur rand',
+			data			: 'Inhoud',
+			header			: 'Kop',
+			yes				: 'Ja',
+			no				: 'Nee',
+			invalidWidth	: 'De celbreedte moet een getal zijn.',
+			invalidHeight	: 'De celhoogte moet een getal zijn.',
+			invalidRowSpan	: 'Rijen samenvoegen moet een heel getal zijn.',
+			invalidColSpan	: 'Kolommen samenvoegen moet een heel getal zijn.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -307,5 +308,5 @@
 		action		: 'Actie',
 		method		: 'Methode',
-		encoding	: 'Encoding', // MISSING
+		encoding	: 'Codering',
 		target		: 'Doel',
 		targetNotSet	: '<niet ingevuld>',
@@ -396,6 +397,7 @@
 		alertUrl	: 'Geef de URL van de afbeelding',
 		linkTab	: 'Link',
-		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
+		button2Img	: 'Wilt u de geselecteerde afbeeldingsknop vervangen door een eenvoudige afbeelding?',
+		img2Button	: 'Wilt u de geselecteerde afbeelding vervangen door een afbeeldingsknop?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -404,18 +406,18 @@
 	{
 		properties		: 'Eigenschappen Flash',
-		propertiesTab	: 'Properties', // MISSING
+		propertiesTab	: 'Eigenschappen',
 		title		: 'Eigenschappen Flash',
 		chkPlay		: 'Automatisch afspelen',
 		chkLoop		: 'Herhalen',
 		chkMenu		: 'Flashmenu\'s inschakelen',
-		chkFull		: 'Allow Fullscreen', // MISSING
+		chkFull		: 'Schermvullend toestaan',
  		scale		: 'Schaal',
 		scaleAll		: 'Alles tonen',
 		scaleNoBorder	: 'Geen rand',
 		scaleFit		: 'Precies passend',
-		access			: 'Script Access', // MISSING
-		accessAlways	: 'Always', // MISSING
-		accessSameDomain	: 'Same domain', // MISSING
-		accessNever	: 'Never', // MISSING
+		access			: 'Script toegang',
+		accessAlways	: 'Altijd',
+		accessSameDomain	: 'Zelfde domeinnaam',
+		accessNever	: 'Nooit',
 		align		: 'Uitlijning',
 		alignLeft	: 'Links',
@@ -428,16 +430,16 @@
 		alignTextTop	: 'Boven tekst',
 		alignTop	: 'Boven',
-		quality		: 'Quality', // MISSING
-		qualityBest		 : 'Best', // MISSING
-		qualityHigh		 : 'High', // MISSING
-		qualityAutoHigh	 : 'Auto High', // MISSING
-		qualityMedium	 : 'Medium', // MISSING
-		qualityAutoLow	 : 'Auto Low', // MISSING
-		qualityLow		 : 'Low', // MISSING
-		windowModeWindow	 : 'Window', // MISSING
-		windowModeOpaque	 : 'Opaque', // MISSING
-		windowModeTransparent	 : 'Transparent', // MISSING
-		windowMode	: 'Window mode', // MISSING
-		flashvars	: 'Variables for Flash', // MISSING
+		quality		: 'Kwaliteit',
+		qualityBest		 : 'Beste',
+		qualityHigh		 : 'Hoog',
+		qualityAutoHigh	 : 'Automatisch hoog',
+		qualityMedium	 : 'Gemiddeld',
+		qualityAutoLow	 : 'Automatisch laag',
+		qualityLow		 : 'Laag',
+		windowModeWindow	 : 'Venster',
+		windowModeOpaque	 : 'Ondoorzichtig',
+		windowModeTransparent	 : 'Doorzichtig',
+		windowMode	: 'Venster modus',
+		flashvars	: 'Variabelen voor Flash',
 		bgcolor	: 'Achtergrondkleur',
 		width	: 'Breedte',
@@ -446,8 +448,8 @@
 		vSpace	: 'VSpace',
 		validateSrc : 'Geef de link van de 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 : 'De breedte moet een getal zijn.',
+		validateHeight : 'De hoogte moet een getal zijn.',
+		validateHSpace : 'De HSpace moet een getal zijn.',
+		validateVSpace : 'De VSpace moet een getal zijn.'
 	},
 
@@ -456,7 +458,7 @@
 	{
 		toolbar			: 'Spellingscontrole',
-		title			: 'Spell Check', // MISSING
-		notAvailable	: 'Sorry, but service is unavailable now.', // MISSING
-		errorLoading	: 'Error loading application service host: %s.', // MISSING
+		title			: 'Spellingscontrole',
+		notAvailable	: 'Excuses, deze dienst is momenteel niet beschikbaar.',
+		errorLoading	: 'Er is een fout opgetreden bij het laden van de diesnt: %s.',
 		notInDic		: 'Niet in het woordenboek',
 		changeTo		: 'Wijzig in',
@@ -483,5 +485,5 @@
 	elementsPath :
 	{
-		eleTitle : '%1 element' // MISSING
+		eleTitle : '%1 element'
 	},
 
@@ -539,9 +541,9 @@
 	{
 		label : 'Stijl',
-		voiceLabel : 'Styles', // MISSING
-		panelVoiceLabel : 'Select a style', // MISSING
-		panelTitle1 : 'Block Styles', // MISSING
-		panelTitle2 : 'Inline Styles', // MISSING
-		panelTitle3 : 'Object Styles' // MISSING
+		voiceLabel : 'Stijl',
+		panelVoiceLabel : 'Selecteer een stijl',
+		panelTitle1 : 'Blok stijlen',
+		panelTitle2 : 'In-line stijlen',
+		panelTitle3 : 'Object stijlen'
 	},
 
@@ -549,7 +551,7 @@
 	{
 		label : 'Opmaak',
-		voiceLabel : 'Format', // MISSING
+		voiceLabel : 'Opmaak',
 		panelTitle : 'Opmaak',
-		panelVoiceLabel : 'Select a paragraph format', // MISSING
+		panelVoiceLabel : 'Selecteer een alinea-opmaak',
 
 		tag_p : 'Normaal',
@@ -568,15 +570,15 @@
 	{
 		label : 'Lettertype',
-		voiceLabel : 'Font', // MISSING
+		voiceLabel : 'Lettertype',
 		panelTitle : 'Lettertype',
-		panelVoiceLabel : 'Select a font' // MISSING
+		panelVoiceLabel : 'Selecteer een lettertype'
 	},
 
 	fontSize :
 	{
-		label : 'Grootte',
-		voiceLabel : 'Font Size', // MISSING
-		panelTitle : 'Grootte',
-		panelVoiceLabel : 'Select a font size' // MISSING
+		label : 'Lettergrootte',
+		voiceLabel : 'Lettergrootte',
+		panelTitle : 'Lettergrootte',
+		panelVoiceLabel : 'Selecteer een lettergrootte'
 	},
 
@@ -635,40 +637,49 @@
 	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 : 'Controleer de spelling tijdens het typen',
+		enable : 'SCAYT inschakelen',
+		disable : 'SCAYT uitschakelen',
+		about : 'Over SCAYT',
+		toggle : 'SCAYT in/uitschakelen',
+		options : 'Opties',
+		langs : 'Talen',
+		moreSuggestions : 'Meer suggesties',
+		ignore : 'Negeren',
+		ignoreAll : 'Alles negeren',
+		addWord : 'Woord toevoegen',
+		emptyDic : 'De naam van het woordenboek mag niet leeg zijn.',
+		optionsTab : 'Opties',
+		languagesTab : 'Talen',
+		dictionariesTab : 'Woordenboeken',
+		aboutTab : 'Over'
 	},
 
 	about :
 	{
-		title : 'About CKEditor', // MISSING
-		dlgTitle : 'About CKEditor', // MISSING
-		moreInfo : 'For licensing information please visit our web site:', // MISSING
-		copy : 'Copyright &copy; $1. All rights reserved.' // MISSING
-	},
-
-	maximize : 'Maximize', // MISSING
+		title : 'Over CKEditor',
+		dlgTitle : 'Over CKEditor',
+		moreInfo : 'Voor licentie informatie, bezoek onze website:',
+		copy : 'Copyright &copy; $1. Alle rechten voorbehouden.'
+	},
+
+	maximize : 'Maximaliseren',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
 	{
-		anchor : 'Anchor', // MISSING
-		flash : 'Flash Animation', // MISSING
-		div : 'Page Break', // MISSING
-		unknown : 'Unknown Object' // MISSING
-	},
-
-	resize : 'Drag to resize' // MISSING
+		anchor : 'Anker',
+		flash : 'Flash animatie',
+		div : 'Pagina einde',
+		unknown : 'Onbekend object'
+	},
+
+	resize : 'Sleep om te herschalen',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/no.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/no.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/no.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Lenke',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/pl.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/pl.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/pl.js	(revision 4394)
@@ -92,6 +92,6 @@
 		advancedTab		: 'Zaawansowane',
 		validateNumberFailed	: 'Ta wartość nie jest liczbą.',
-		confirmNewPage	: 'Wszystkie niezapisane zmiany zostaną utracone. Czy na pewno wczytać nową stronę ?',
-		confirmCancel	: 'Pewne opcje zostały zmienione. Czy na pewno zamknąć okno dialogowe ?',
+		confirmNewPage	: 'Wszystkie niezapisane zmiany zostaną utracone. Czy na pewno wczytać nową stronę?',
+		confirmCancel	: 'Pewne opcje zostały zmienione. Czy na pewno zamknąć okno dialogowe?',
 
 		// Put the voice-only part of the label in the span.
@@ -260,5 +260,6 @@
 			invalidHeight	: 'Wysokość komórki musi być liczbą.',
 			invalidRowSpan	: 'Scalenie wierszy musi być liczbą całkowitą.',
-			invalidColSpan	: 'Scalenie komórek musi być liczbą całkowitą.'
+			invalidColSpan	: 'Scalenie komórek musi być liczbą całkowitą.',
+			chooseColor : 'Wybierz'
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Hiperłącze',
 		button2Img	: 'Czy chcesz przekonwertować zaznaczony przycisk graficzny do zwykłego obrazka?',
-		img2Button	: 'Czy chcesz przekonwertować zaznaczony obrazek do przycisku graficznego?'
+		img2Button	: 'Czy chcesz przekonwertować zaznaczony obrazek do przycisku graficznego?',
+		urlMissing : 'Podaj adres URL obrazka.'
 	},
 
@@ -406,5 +408,5 @@
 		propertiesTab	: 'Właściwości',
 		title		: 'Właściwości elementu Flash',
-		chkPlay		: 'Auto Odtwarzanie',
+		chkPlay		: 'Autoodtwarzanie',
 		chkLoop		: 'Pętla',
 		chkMenu		: 'Włącz menu',
@@ -439,5 +441,5 @@
 		windowModeTransparent	 : 'Przeźroczyste',
 		windowMode	: 'Tryb okna',
-		flashvars	: 'Zmienne dla Flash\'a',
+		flashvars	: 'Zmienne dla Flasha',
 		bgcolor	: 'Kolor tła',
 		width	: 'Szerokość',
@@ -467,5 +469,5 @@
 		btnUndo			: 'Cofnij',
 		noSuggestions	: '- Brak sugestii -',
-		progress		: 'Trwa sprawdzanie ...',
+		progress		: 'Trwa sprawdzanie...',
 		noMispell		: 'Sprawdzanie zakończone: nie znaleziono błędów',
 		noChanges		: 'Sprawdzanie zakończone: nie zmieniono żadnego słowa',
@@ -527,5 +529,5 @@
 	templates :
 	{
-		button : 'Sablony',
+		button : 'Szablony',
 		title : 'Szablony zawartości',
 		insertOption: 'Zastąp aktualną zawartość',
@@ -539,5 +541,5 @@
 	{
 		label : 'Styl',
-		voiceLabel : 'Style',
+		voiceLabel : 'Styl',
 		panelVoiceLabel : 'Wybierz styl',
 		panelTitle1 : 'Style blokowe',
@@ -570,5 +572,5 @@
 		voiceLabel : 'Czcionka',
 		panelTitle : 'Czcionka',
-		panelVoiceLabel : 'Select a font'
+		panelVoiceLabel : 'Wybierz czcionkę'
 	},
 
@@ -578,5 +580,5 @@
 		voiceLabel : 'Rozmiar czcionki',
 		panelTitle : 'Rozmiar',
-		panelVoiceLabel : 'Select a font size'
+		panelVoiceLabel : 'Wybierz rozmiar czcionki'
 	},
 
@@ -635,9 +637,9 @@
 	scayt :
 	{
-		title : 'Sprawdź pisowanie podczas pisania (SCAYT)',
+		title : 'Sprawdź pisownię podczas pisania (SCAYT)',
 		enable : 'Włącz SCAYT',
 		disable : 'Wyłącz SCAYT',
 		about : 'Na temat SCAYT',
-		toggle : 'Toggle SCAYT',
+		toggle : 'Przełącz SCAYT',
 		options : 'Opcje',
 		langs : 'Języki',
@@ -662,4 +664,5 @@
 
 	maximize : 'Maksymalizuj',
+	minimize : 'Minimalizuj',
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Przeciągnij, aby zmienić rozmiar'
+	resize : 'Przeciągnij, aby zmienić rozmiar',
+
+	colordialog :
+	{
+		title : 'Wybierz kolor',
+		highlight : 'Zaznacz',
+		selected : 'Wybrany',
+		clear : 'Wyczyść'
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/pt-br.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/pt-br.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/pt-br.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'A altura da célula tem que ser um número.',
 			invalidRowSpan	: '"Linhas cobertas" tem que ser um número inteiro.',
-			invalidColSpan	: '"Colunas cobertas" tem que ser um número inteiro.'
+			invalidColSpan	: '"Colunas cobertas" tem que ser um número inteiro.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Hiperlink',
 		button2Img	: 'Você deseja transformar o botão de imagem selecionado em uma imagem comum?',
-		img2Button	: 'Você deseja transformar a imagem selecionada em um botão de imagem?'
+		img2Button	: 'Você deseja transformar a imagem selecionada em um botão de imagem?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximizar',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Arraste para redimensionar'
+	resize : 'Arraste para redimensionar',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/pt.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/pt.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/pt.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Hiperligação',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/ro.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/ro.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/ro.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Link (Legătură web)',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/ru.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/ru.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/ru.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Ссылка',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/sk.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/sk.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/sk.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Odkaz',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/sl.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/sl.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/sl.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Povezava',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/sr-latn.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/sr-latn.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/sr-latn.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Link',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/sr.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/sr.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/sr.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Линк',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/sv.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/sv.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/sv.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Länk',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/th.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/th.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/th.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'ลิ้งค์',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/tr.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/tr.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/tr.js	(revision 4394)
@@ -260,5 +260,6 @@
 			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
+			invalidColSpan	: 'Columns span must be a whole number.', // MISSING
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Köprü',
 		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
+		img2Button	: 'Do you want to transform the selected image on a image button?', // MISSING
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Maximize', // MISSING
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Drag to resize' // MISSING
+	resize : 'Drag to resize', // MISSING
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/uk.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/uk.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/uk.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'Висота комірки повинна бути числом.',
 			invalidRowSpan	: 'Кількість обєднуваних рядків повинна бути цілим числом.',
-			invalidColSpan	: 'Кількість обєднуваних стовпчиків повинна бути цілим числом.'
+			invalidColSpan	: 'Кількість обєднуваних стовпчиків повинна бути цілим числом.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Посилання',
 		button2Img	: 'Ви хочете перетворити обрану кнопку-зображення на просте зображення?',
-		img2Button	: 'Ви хочете перетворити обране зображення на кнопку-зображення?'
+		img2Button	: 'Ви хочете перетворити обране зображення на кнопку-зображення?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Максимізувати',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Пересувайте для зміни розміру'
+	resize : 'Пересувайте для зміни розміру',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/vi.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/vi.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/vi.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: 'Chiều cao của Ô phải là một số nguyên.',
 			invalidRowSpan	: 'Số hàng kết hợp phải là một số nguyên.',
-			invalidColSpan	: 'Số cột kết hợp phải là một số nguyên.'
+			invalidColSpan	: 'Số cột kết hợp phải là một số nguyên.',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: 'Liên kết',
 		button2Img	: 'Bạn có muốn chuyển nút bấm bằng hình ảnh được chọn thành hình ảnh?',
-		img2Button	: 'Bạn có muốn chuyển đổi hình ảnh được chọn thành nút bấm bằng hình ảnh?'
+		img2Button	: 'Bạn có muốn chuyển đổi hình ảnh được chọn thành nút bấm bằng hình ảnh?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : 'Phóng to tối đa',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : 'Kéo rê để thay đổi kích cỡ'
+	resize : 'Kéo rê để thay đổi kích cỡ',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/zh-cn.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/zh-cn.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/zh-cn.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: '单元格高度必须为数字格式',
 			invalidRowSpan	: '行跨度必须为整数格式',
-			invalidColSpan	: '列跨度必须为整数格式'
+			invalidColSpan	: '列跨度必须为整数格式',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: '链接',
 		button2Img	: '确定要把当前按钮改变为图像吗?',
-		img2Button	: '确定要把当前图像改变为按钮吗?'
+		img2Button	: '确定要把当前图像改变为按钮吗?',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : '全屏',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : '拖拽以改变尺寸'
+	resize : '拖拽以改变尺寸',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/lang/zh.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/lang/zh.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/lang/zh.js	(revision 4394)
@@ -260,5 +260,6 @@
 			invalidHeight	: '儲存格高度必須為數字格式',
 			invalidRowSpan	: '儲存格列數必須為整數格式',
-			invalidColSpan	: '儲存格欄數度必須為整數格式'
+			invalidColSpan	: '儲存格欄數度必須為整數格式',
+			chooseColor : 'Choose' // MISSING
 		},
 
@@ -397,5 +398,6 @@
 		linkTab	: '超連結',
 		button2Img	: '要把影像按鈕改成影像嗎？',
-		img2Button	: '要把影像改成影像按鈕嗎？'
+		img2Button	: '要把影像改成影像按鈕嗎？',
+		urlMissing : 'Image source URL is missing.' // MISSING
 	},
 
@@ -662,4 +664,5 @@
 
 	maximize : '最大化',
+	minimize : 'Minimize', // MISSING
 
 	fakeobjects :
@@ -671,4 +674,12 @@
 	},
 
-	resize : '拖拽改變大小'
+	resize : '拖拽改變大小',
+
+	colordialog :
+	{
+		title : 'Select color', // MISSING
+		highlight : 'Highlight', // MISSING
+		selected : 'Selected', // MISSING
+		clear : 'Clear' // MISSING
+	}
 };
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/clipboard/dialogs/paste.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/clipboard/dialogs/paste.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/clipboard/dialogs/paste.js	(revision 4394)
@@ -6,5 +6,5 @@
 CKEDITOR.dialog.add( 'paste', function( editor )
 {
-	var isCustomDomain = CKEDITOR.env.ie && document.domain != window.location.hostname;
+	var isCustomDomain = CKEDITOR.env.isCustomDomain();
 
 	return {
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/colordialog/dialogs/colordialog.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/colordialog/dialogs/colordialog.js	(revision 4394)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/colordialog/dialogs/colordialog.js	(revision 4394)
@@ -0,0 +1,191 @@
+/*
+Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+CKEDITOR.dialog.add( 'colordialog', function( editor )
+	{
+		// Define some shorthands.
+		var $el = CKEDITOR.dom.element,
+			$doc = CKEDITOR.document,
+			$tools = CKEDITOR.tools,
+			lang = editor.lang.colordialog;
+
+		// Reference the dialog.
+		var dialog;
+
+		function spacer()
+		{
+			return {
+				type : 'html',
+				html : '&nbsp;'
+			};
+		}
+
+		var table = new $el( 'table' );
+		createColorTable();
+
+		var cellMouseover = function( event )
+		{
+			var color = new $el( event.data.getTarget() ).getAttribute( 'title' );
+			$doc.getById( 'hicolor' ).setStyle( 'background-color', color );
+			$doc.getById( 'hicolortext' ).setHtml( color );
+		};
+
+		var cellClick = function( event )
+		{
+			var color = new $el( event.data.getTarget() ).getAttribute( 'title' );
+			dialog.getContentElement( 'picker', 'selectedColor' ).setValue( color );
+		};
+
+		function createColorTable()
+		{
+			// Create the base colors array.
+			var aColors = ['00','33','66','99','cc','ff'];
+
+			// This function combines two ranges of three values from the color array into a row.
+			function appendColorRow( rangeA, rangeB )
+			{
+				for ( var i = rangeA ; i < rangeA + 3 ; i++ )
+				{
+					var row = table.$.insertRow(-1);
+
+					for ( var j = rangeB ; j < rangeB + 3 ; j++ )
+					{
+						for ( var n = 0 ; n < 6 ; n++ )
+						{
+							appendColorCell( row, '#' + aColors[j] + aColors[n] + aColors[i] );
+						}
+					}
+				}
+			}
+
+			// This function create a single color cell in the color table.
+			function appendColorCell( targetRow, color )
+			{
+				var cell = new $el( targetRow.insertCell( -1 ) );
+				cell.setAttribute( 'class', 'ColorCell' );
+				cell.setStyle( 'background-color', color );
+
+				cell.setStyle( 'width', '15px' );
+				cell.setStyle( 'height', '15px' );
+
+				// Pass unparsed color value in some markup-degradable form.
+				cell.setAttribute( 'title', color );
+			}
+
+			appendColorRow( 0, 0 );
+			appendColorRow( 3, 0 );
+			appendColorRow( 0, 3 );
+			appendColorRow( 3, 3 );
+
+			// Create the last row.
+			var oRow = table.$.insertRow(-1) ;
+
+			// Create the gray scale colors cells.
+			for ( var n = 0 ; n < 6 ; n++ )
+			{
+				appendColorCell( oRow, '#' + aColors[n] + aColors[n] + aColors[n] ) ;
+			}
+
+			// Fill the row with black cells.
+			for ( var i = 0 ; i < 12 ; i++ )
+			{
+				appendColorCell( oRow, '#000000' ) ;
+			}
+		}
+
+		function clear()
+		{
+			$doc.getById( 'selhicolor' ).removeStyle( 'background-color' );
+			dialog.getContentElement( 'picker', 'selectedColor' ).setValue( '' );
+		}
+
+		var clearActual = $tools.addFunction( function()
+		{
+			$doc.getById( 'hicolor' ).removeStyle( 'background-color' );
+			$doc.getById( 'hicolortext' ).setHtml( '&nbsp;' );
+		} );
+
+		return {
+			title : lang.title,
+			minWidth : 360,
+			minHeight : 220,
+			onLoad : function()
+			{
+				// Update reference.
+				dialog = this;
+			},
+			contents : [
+				{
+					id : 'picker',
+					label : lang.title,
+					accessKey : 'I',
+					elements :
+					[
+						{
+							type : 'hbox',
+							padding : 0,
+							widths : [ '70%', '10%', '30%' ],
+							children :
+							[
+								{
+									type : 'html',
+									html : '<table onmouseout="CKEDITOR.tools.callFunction( ' + clearActual + ' );">' + table.getHtml() + '</table>',
+									onLoad : function()
+									{
+										var table = CKEDITOR.document.getById( this.domId );
+										table.on( 'mouseover', cellMouseover );
+										table.on( 'click', cellClick );
+									}
+								},
+								spacer(),
+								{
+									type : 'vbox',
+									padding : 0,
+									widths : [ '70%', '5%', '25%' ],
+									children :
+									[
+										{
+											type : 'html',
+											html : '<span>' + lang.highlight +'</span>\
+												<div id="hicolor" style="border: 1px solid; height: 74px; width: 74px;"></div>\
+												<div id="hicolortext">&nbsp;</div>\
+												<span>' + lang.selected +'</span>\
+												<div id="selhicolor" style="border: 1px solid; height: 20px; width: 74px;"></div>'
+										},
+										{
+											type : 'text',
+											id : 'selectedColor',
+											style : 'width: 74px',
+											onChange : function()
+											{
+												// Try to update color preview with new value. If fails, then set it no none.
+												try
+												{
+													$doc.getById( 'selhicolor' ).setStyle( 'background-color', this.getValue() );
+												}
+												catch ( e )
+												{
+													clear();
+												}
+											}
+										},
+										spacer(),
+										{
+											type : 'button',
+											id : 'clear',
+											style : 'margin-top: 5px',
+											label : lang.clear,
+											onClick : clear
+										}
+									]
+								}
+							]
+						}
+					]
+				}
+			]
+		};
+	}
+	);
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/colordialog/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/colordialog/plugin.js	(revision 4394)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/colordialog/plugin.js	(revision 4394)
@@ -0,0 +1,13 @@
+( function()
+{
+	CKEDITOR.plugins.colordialog =
+	{
+		init : function( editor )
+		{
+			editor.addCommand( 'colordialog', new CKEDITOR.dialogCommand( 'colordialog' ) );
+			CKEDITOR.dialog.add( 'colordialog', this.path + 'dialogs/colordialog.js' );
+		}
+	};
+
+	CKEDITOR.plugins.add( 'colordialog', CKEDITOR.plugins.colordialog );
+} )();
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/contextmenu/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/contextmenu/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/contextmenu/plugin.js	(revision 4394)
@@ -16,5 +16,5 @@
 				exec : function()
 					{
-						editor.contextMenu.show();
+						editor.contextMenu.show( editor.document.getBody() );
 					}
 			});
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/dialog/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/dialog/plugin.js	(revision 4394)
@@ -273,4 +273,8 @@
 			}
 			focusList[ currentIndex ].focus();
+
+			// Select whole field content.
+			if ( focusList[ currentIndex ].type == 'text' )
+				focusList[ currentIndex ].select();
 		}
 
@@ -624,4 +628,8 @@
 				CKEDITOR.document.on( 'keydown', accessKeyDownHandler );
 				CKEDITOR.document.on( 'keyup', accessKeyUpHandler );
+
+				// Prevent some keys from bubbling up. (#4269)
+				for ( var event in { keyup :1, keydown :1, keypress :1 } )
+					CKEDITOR.document.on( event, preventKeyBubbling );
 			}
 			else
@@ -750,4 +758,9 @@
 				CKEDITOR.document.removeListener( 'keydown', accessKeyDownHandler );
 				CKEDITOR.document.removeListener( 'keyup', accessKeyUpHandler );
+				CKEDITOR.document.removeListener( 'keypress', accessKeyUpHandler );
+
+				// Remove bubbling-prevention handler. (#4269)
+				for ( var event in { keyup :1, keydown :1, keypress :1 } )
+					CKEDITOR.document.removeListener( event, preventKeyBubbling );
 
 				var editor = this._.editor;
@@ -1427,4 +1440,7 @@
 			margins = skinData[ editor.skinName ].margins || [ 0, 0, 0, 0 ];
 
+		if ( typeof magnetDistance == 'undefined' )
+			magnetDistance = 20;
+
 		function mouseMoveHandler( evt )
 		{
@@ -1650,5 +1666,5 @@
 					'; z-index: ', editor.config.baseFloatZIndex,
 					'; top: 0px; left: 0px; ',
-					'background-color: ', editor.config.dialog_backgroundCoverColor,
+					'background-color: ', editor.config.dialog_backgroundCoverColor || 'white',
 					'" id="cke_dialog_background_cover">'
 				];
@@ -1742,5 +1758,8 @@
 			scrollFunc();
 		}
-		element.setOpacity( editor.config.dialog_backgroundCoverOpacity );
+
+		var opacity = editor.config.dialog_backgroundCoverOpacity;
+		element.setOpacity( typeof opacity != 'undefined' ? opacity : 0.5 );
+
 		element.appendTo( CKEDITOR.document.getBody() );
 	};
@@ -1835,4 +1854,12 @@
 	var tabAccessKeyDown = function( dialog, key )
 	{
+	};
+
+	// ESC, ENTER
+	var preventKeyBubblingKeys = { 27 :1, 13 :1 };
+	var preventKeyBubbling = function( e )
+	{
+		if ( e.data.getKeystroke() in preventKeyBubblingKeys )
+			e.data.stopPropagation();
 	};
 
@@ -2715,14 +2742,15 @@
  * The color of the dialog background cover. It should be a valid CSS color
  * string.
+ * @name CKEDITOR.config.dialog_backgroundCoverColor
  * @type String
- * @default white
+ * @default 'white'
  * @example
  * config.dialog_backgroundCoverColor = 'rgb(255, 254, 253)';
  */
-CKEDITOR.config.dialog_backgroundCoverColor = 'white';
 
 /**
  * The opacity of the dialog background cover. It should be a number within the
  * range [0.0, 1.0].
+ * @name CKEDITOR.config.dialog_backgroundCoverOpacity
  * @type Number
  * @default 0.5
@@ -2730,9 +2758,9 @@
  * config.dialog_backgroundCoverOpacity = 0.7;
  */
-CKEDITOR.config.dialog_backgroundCoverOpacity = 0.5;
 
 /**
  * The distance of magnetic borders used in moving and resizing dialogs,
  * measured in pixels.
+ * @name CKEDITOR.config.dialog_magnetDistance
  * @type Number
  * @default 20
@@ -2740,3 +2768,2 @@
  * config.dialog_magnetDistance = 30;
  */
-CKEDITOR.config.dialog_magnetDistance = 20;
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/dialogui/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/dialogui/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/dialogui/plugin.js	(revision 4394)
@@ -598,5 +598,5 @@
 
 					// Support for custom document.domain in IE.
-					var isCustomDomain = CKEDITOR.env.ie && document.domain != window.location.hostname;
+					var isCustomDomain = CKEDITOR.env.isCustomDomain();
 
 					var html = [
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/find/dialogs/find.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/find/dialogs/find.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/find/dialogs/find.js	(revision 4394)
@@ -426,5 +426,5 @@
 			searchRange : null,
 			matchRange : null,
-			find : function( pattern, matchCase, matchWord, matchCyclic, highlightMatched )
+			find : function( pattern, matchCase, matchWord, matchCyclic, highlightMatched, cyclicRerun )
 			{
 				if( !this.matchRange )
@@ -481,8 +481,11 @@
 				// Clear current session and restart with the default search
 				// range.
-				if ( matchCyclic )
+				// Re-run the finding once for cyclic.(#3517)
+				if ( matchCyclic && !cyclicRerun )
 				{
 					this.searchRange = getSearchRange( true );
 					this.matchRange = null;
+					return arguments.callee.apply( this,
+						Array.prototype.slice.call( arguments ).concat( [ true ] ) );
 				}
 
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/flash/dialogs/flash.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/flash/dialogs/flash.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/flash/dialogs/flash.js	(revision 4394)
@@ -25,5 +25,5 @@
 	var attributesMap =
 	{
-		id : [ { type : ATTRTYPE_OBJECT, name : CKEDITOR.env.ie ? '_cke_saved_id' : 'id' } ],
+		id : [ { type : ATTRTYPE_OBJECT, name :  'id' } ],
 		classid : [ { type : ATTRTYPE_OBJECT, name : 'classid' } ],
 		codebase : [ { type : ATTRTYPE_OBJECT, name : 'codebase'} ],
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/floatpanel/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/floatpanel/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/floatpanel/plugin.js	(revision 4394)
@@ -56,4 +56,8 @@
 			this.element = element;
 
+			// Register panels to editor for easy destroying ( #4241 ).
+			editor.panels ? editor.panels.push( element ) : editor.panels = [ element ];
+
+
 			this._ =
 			{
@@ -116,5 +120,8 @@
 					top		= position.y + ( offsetY || 0 );
 
-				if ( ( rtl && ( corner == 1 || corner == 4 ) ) || ( !rtl && ( corner == 2 || corner == 3 ) ) )
+				// Floating panels are off by (-1px, 0px) in RTL mode. (#3438)
+				if ( rtl && ( corner == 1 || corner == 4 ) )
+					left += offsetParent.$.offsetWidth;
+				else if ( !rtl && ( corner == 2 || corner == 3 ) )
 					left += offsetParent.$.offsetWidth - 1;
 
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/font/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/font/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/font/plugin.js	(revision 4394)
@@ -37,5 +37,5 @@
 				panel :
 				{
-					css : [ config.contentsCss, CKEDITOR.getUrl( editor.skinPath + 'editor.css' ) ],
+					css : [ CKEDITOR.getUrl( editor.skinPath + 'editor.css' ) ].concat( config.contentsCss ),
 					voiceLabel : lang.panelVoiceLabel
 				},
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/format/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/format/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/format/plugin.js	(revision 4394)
@@ -34,5 +34,5 @@
 				panel :
 				{
-					css : [ config.contentsCss, CKEDITOR.getUrl( editor.skinPath + 'editor.css' ) ],
+					css : [ CKEDITOR.getUrl( editor.skinPath + 'editor.css' ) ].concat( config.contentsCss ),
 					voiceLabel : lang.panelVoiceLabel
 				},
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/forms/dialogs/select.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/forms/dialogs/select.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/forms/dialogs/select.js	(revision 4394)
@@ -248,4 +248,6 @@
 									if ( name == 'select' )
 										this.setValue( element.getAttribute( 'size' ) || '' );
+									if ( CKEDITOR.env.webkit )
+										this.getInputElement().setStyle( 'width', '86px' );
 								},
 								commit : function( element )
@@ -524,4 +526,6 @@
 									if ( name == 'select' )
 										this.setValue( element.getAttribute( 'multiple' ) );
+									if ( CKEDITOR.env.webkit )
+										this.getElement().getParent().setStyle( 'vertical-align', 'middle' );
 								},
 								commit : function( element )
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/htmldataprocessor/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/htmldataprocessor/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/htmldataprocessor/plugin.js	(revision 4394)
@@ -12,4 +12,15 @@
 	var protectedSourceMarker = '{cke_protected}';
 
+
+	// Return the last non-space child node of the block (#4344).
+	function lastNoneSpaceChild( block )
+	{
+		var lastIndex = block.children.length,
+			last = block.children[ lastIndex - 1 ];
+		while(  last && last.type == CKEDITOR.NODE_TEXT && !CKEDITOR.tools.trim( last.value ) )
+			last = block.children[ --lastIndex ];
+		return last;
+	}
+
 	function trimFillers( block, fromSource )
 	{
@@ -19,6 +30,5 @@
 		// Also, any &nbsp; at the end of blocks are fillers, remove them as well.
 		// (#2886)
-		var children = block.children;
-		var lastChild = children[ children.length - 1 ];
+		var children = block.children, lastChild = lastNoneSpaceChild( block );
 		if ( lastChild )
 		{
@@ -32,9 +42,6 @@
 	function blockNeedsExtension( block )
 	{
-		if ( block.children.length < 1 )
-			return true;
-
-		var lastChild = block.children[ block.children.length - 1 ];
-		return lastChild.type == CKEDITOR.NODE_ELEMENT && lastChild.name == 'br';
+		var lastChild = lastNoneSpaceChild( block );
+		return !lastChild || lastChild.type == CKEDITOR.NODE_ELEMENT && lastChild.name == 'br';
 	}
 
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/image/dialogs/image.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/image/dialogs/image.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/image/dialogs/image.js	(revision 4394)
@@ -258,4 +258,11 @@
 					// Refresh LockRatio button
 					switchLockRatio ( this, true );
+				}
+
+				// Dont show preview if no URL given.
+				if ( !CKEDITOR.tools.trim( this.getValueOf( 'info', 'txtUrl' ) ) )
+				{
+					this.preview.removeAttribute( 'src' );
+					this.preview.setStyle( 'display', 'none' );
 				}
 			},
@@ -404,4 +411,6 @@
 													var original = dialog.originalElement;
 
+													dialog.preview.removeStyle( 'display' );
+
 													original.setCustomData( 'isReady', 'false' );
 													// Show loader
@@ -417,4 +426,10 @@
 
 													updatePreview( dialog );
+												}
+												// Dont show preview if no URL given.
+												else if ( dialog.preview )
+												{
+													dialog.preview.removeAttribute( 'src' );
+													dialog.preview.setStyle( 'display', 'none' );
 												}
 											},
@@ -433,4 +448,6 @@
 														{
 															field.setValue( url );		// And call this.onChange()
+															// Manually set the initial value.(#4191)
+															field.setInitValue();
 															field.focus();
 														}, 0 );
@@ -449,5 +466,6 @@
 													element.removeAttribute( 'src' );
 												}
-											}
+											},
+											validate : CKEDITOR.dialog.validate.notEmpty( editor.lang.image.urlMissing )
 										},
 										{
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/keystrokes/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/keystrokes/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/keystrokes/plugin.js	(revision 4394)
@@ -203,4 +203,5 @@
 
 	[ CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' ],
+	[ CKEDITOR.CTRL + CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' ],
 
 	[ CKEDITOR.CTRL + 90 /*Z*/, 'undo' ],
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/maximize/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/maximize/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/maximize/plugin.js	(revision 4394)
@@ -112,5 +112,5 @@
 				{
 					modes : { wysiwyg : 1, source : 1 },
-
+					editorFocus : false,
 					exec : function()
 					{
@@ -121,5 +121,6 @@
 						if ( editor.mode == 'wysiwyg' )
 						{
-							savedSelection = editor.getSelection().getRanges();
+							var selection = editor.getSelection();
+							savedSelection = selection && selection.getRanges();
 							savedScroll = mainWindow.getScrollPosition();
 						}
@@ -224,12 +225,23 @@
 						this.toggleState();
 
+						// Toggle button label.
+						var button = this.uiItems[ 0 ];
+						var label = ( this.state == CKEDITOR.TRISTATE_OFF )
+							? lang.maximize : lang.minimize;
+						var buttonNode = editor.element.getDocument().getById( button._.id );
+						buttonNode.getChild( 1 ).setHtml( label );
+						buttonNode.setAttribute( 'title', label );
+						buttonNode.setAttribute( 'href', 'javascript:void("' + label + '");' );
+
 						// Restore selection and scroll position in editing area.
 						if ( editor.mode == 'wysiwyg' )
 						{
-							editor.getSelection().selectRanges( savedSelection );
-
-							var element = editor.getSelection().getStartElement();
-							if ( element )
-								element.scrollIntoView( true );
+							if ( savedSelection )
+							{
+								editor.getSelection().selectRanges(savedSelection);
+								var element = editor.getSelection().getStartElement();
+								element && element.scrollIntoView( true );
+							}
+
 							else
 								mainWindow.$.scrollTo( savedScroll.x, savedScroll.y );
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/menu/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/menu/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/menu/plugin.js	(revision 4394)
@@ -233,4 +233,6 @@
 				else
 					panel.showBlock( this.id, offsetParent, corner, offsetX, offsetY );
+
+				editor.fire( 'menuShow', [ panel ] );
 			},
 
@@ -329,5 +331,5 @@
 					'>' +
 						'<span class="cke_icon_wrapper"><span class="cke_icon"' +
-							( this.icon ? ' style="background-image:url(' + CKEDITOR.getUrl( this.icon ) + ');background-position:0 ' + offset + 'px;"></span>'
+							( this.icon ? ' style="background-image:url(' + CKEDITOR.getUrl( this.icon ) + ');background-position:0 ' + offset + 'px;"'
 							: '' ) +
 							'></span></span>' +
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/newpage/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/newpage/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/newpage/plugin.js	(revision 4394)
@@ -20,29 +20,13 @@
 				{
 					var command = this;
-					function afterCommand()
+					editor.setData( editor.config.newpage_html, function()
 					{
-						// Defer to happen after 'selectionChange'.
-						setTimeout( function()
+						editor.fire( 'afterCommandExec',
 						{
-							editor.fire( 'afterCommandExec',
-							{
-								name: command.name,
-								command: command
-							} );
-						}, 500 );
-					}
-					if ( editor.mode == 'wysiwyg')
-						editor.on( 'contentDom', function( evt ){
-
-							evt.removeListener();
-	                        afterCommand();
+							name: command.name,
+							command: command
 						} );
-
-					editor.setData( editor.config.newpage_html );
+					} );
 					editor.focus();
-
-					if( editor.mode == 'source' )
-						afterCommand();
-
 				},
 				async : true
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/panel/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/panel/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/panel/plugin.js	(revision 4394)
@@ -254,4 +254,7 @@
 
 		this._.focusIndex = -1;
+
+		// Disable context menu for panels.
+		this.element.disableContextMenu();
 	},
 
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/pastefromword/dialogs/pastefromword.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/pastefromword/dialogs/pastefromword.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/pastefromword/dialogs/pastefromword.js	(revision 4394)
@@ -194,6 +194,5 @@
 				container.setStyle( 'height', ( iframe.$.offsetHeight + 2 ) + 'px' );
 
-			var isCustomDomain = CKEDITOR.env.ie && document.domain != window.location.hostname;
-			if ( isCustomDomain )
+			if ( CKEDITOR.env.isCustomDomain() )
 			{
 				CKEDITOR._cke_htmlToLoad = this.definition.htmlToLoad;
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/preview/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/preview/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/preview/plugin.js	(revision 4394)
@@ -17,5 +17,5 @@
 		{
 			var sHTML,
-				isCustomDomain = CKEDITOR.env.ie && document.domain != window.location.hostname;
+				isCustomDomain = CKEDITOR.env.isCustomDomain();
 			if ( editor.config.fullPage )
 				sHTML = editor.getData();
@@ -38,5 +38,7 @@
 					baseTag +
 					'<title>' + editor.lang.preview + '</title>' +
-					'<link href="' + editor.config.contentsCss + '" type="text/css" rel="stylesheet" _cktemp="true"/>' +
+					'<link type="text/css" rel="stylesheet" href="' +
+					[].concat( editor.config.contentsCss ).join( '"><link type="text/css" rel="stylesheet" href="' ) +
+					'">' +
 					'</head>' + bodyHtml +
 					editor.getData() +
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/scayt/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/scayt/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/scayt/plugin.js	(revision 4394)
@@ -251,4 +251,5 @@
 	{
 		preserveState : true,
+		editorFocus : false,
 
 		exec: function( editor )
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/selection/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/selection/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/selection/plugin.js	(revision 4394)
@@ -679,5 +679,5 @@
 						node = sel.anchorNode;
 
-						if ( node.nodeType != 1 )
+						if ( node && node.nodeType != 1 )
 							node = node.parentNode;
 					}
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/showblocks/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/showblocks/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/showblocks/plugin.js	(revision 4394)
@@ -90,4 +90,5 @@
 	{
 		preserveState : true,
+		editorFocus : false,
 
 		exec : function ( editor )
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/smiley/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/smiley/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/smiley/plugin.js	(revision 4394)
@@ -31,5 +31,5 @@
  */
 CKEDITOR.config.smiley_path = CKEDITOR.basePath +
-	'_source/' +		// %REMOVE_LINE%
+	'_source/' +		// @Packager.RemoveLine
 	'plugins/smiley/images/';
 
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/sourcearea/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/sourcearea/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/sourcearea/plugin.js	(revision 4394)
@@ -37,4 +37,5 @@
 								});
 							textarea.addClass( 'cke_source' );
+							textarea.addClass( 'cke_enable_context_menu' );
 
 							var styles =
@@ -64,4 +65,9 @@
 										};
 									editor.on( 'resize', onResize );
+									editor.on( 'afterCommandExec', function( event )
+									{
+										if ( event.data.name == 'toolbarCollapse' )
+											onResize();
+									});
 									styles.height = holderElement.$.clientHeight + 'px';
 								}
@@ -75,7 +81,5 @@
 								textarea.on( 'mousedown', function( evt )
 									{
-										evt = evt.data.$;
-										if ( evt.stopPropagation )
-											evt.stopPropagation();
+										evt.data.stopPropagation();
 									} );
 							}
@@ -87,4 +91,14 @@
 							textarea.setStyles( styles );
 
+							textarea.on( 'blur', function()
+								{
+									editor.focusManager.blur();
+								});
+
+							textarea.on( 'focus', function()
+								{
+									editor.focusManager.focus();
+								});
+
 							// The editor data "may be dirty" after this point.
 							editor.mayBeDirty = true;
@@ -108,4 +122,5 @@
 						{
 							textarea.setValue( data );
+							editor.fire( 'dataReady' );
 						},
 
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/styles/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/styles/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/styles/plugin.js	(revision 4394)
@@ -268,5 +268,5 @@
 
 		for ( var style in stylesDef )
-			stylesText += style + ':' + stylesDef[ style ] + ';';
+			stylesText += ( style + ':' + stylesDef[ style ] ).replace( semicolonFixRegex, ';' );
 
 		// Browsers make some changes to the style when applying them. So, here
@@ -1201,4 +1201,5 @@
 		return styleText.replace( /\s*([;:])\s*/, '$1' )
 							 .replace( /([^\s;])$/, '$1;')
+							 .replace( /,\s+/g, ',' ) // Trimming spaces after comma (e.g. font-family name)(#4107).
 							 .toLowerCase();
 	}
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/stylescombo/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/stylescombo/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/stylescombo/plugin.js	(revision 4394)
@@ -27,5 +27,5 @@
 					panel :
 					{
-						css : [ config.contentsCss, CKEDITOR.getUrl( editor.skinPath + 'editor.css' ) ],
+						css : [ CKEDITOR.getUrl( editor.skinPath + 'editor.css' ) ].concat( config.contentsCss ),
 						voiceLabel : lang.panelVoiceLabel
 					},
@@ -34,6 +34,9 @@
 					{
 						var combo = this,
-							stylesSet = config.stylesCombo_stylesSet.split( ':', 2 ),
-							stylesSetPath = stylesSet[ 1 ] || CKEDITOR.getUrl( pluginPath + 'styles/' + stylesSet[ 0 ] + '.js' ) ;
+							stylesSet = config.stylesCombo_stylesSet.split( ':' );
+
+						var stylesSetPath = stylesSet[ 1 ] ?
+								stylesSet.slice( 1 ).join( ':' ) :		// #4481
+								CKEDITOR.getUrl( pluginPath + 'styles/' + stylesSet[ 0 ] + '.js' ) ;
 
 						stylesSet = stylesSet[ 0 ];
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/table/dialogs/table.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/table/dialogs/table.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/table/dialogs/table.js	(revision 4394)
@@ -98,5 +98,5 @@
 					}
 
-					// Modify the table headers. Depends on havint rows and cols generated
+					// Modify the table headers. Depends on having rows and cols generated
 					// correctly so it can't be done in commit functions.
 
@@ -116,6 +116,5 @@
 							{
 								th.renameNode( 'th' );
-								if ( !i )
-									th.setAttribute( 'scope', 'col' );
+								th.setAttribute( 'scope', 'col' );
 							}
 						}
@@ -154,5 +153,5 @@
 							newCell = new CKEDITOR.dom.element( table.$.rows[ row ].cells[ 0 ] );
 							newCell.renameNode( 'th' );
-							newCell.setAttribute( 'scope', 'col' );
+							newCell.setAttribute( 'scope', 'row' );
 						}
 					}
@@ -167,5 +166,5 @@
 							{
 								newCell = new CKEDITOR.dom.element( row.$.cells[0] );
-								newCell.renameNode( 'td');
+								newCell.renameNode( 'td' );
 								newCell.removeAttribute( 'scope' );
 							}
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/tabletools/dialogs/tableCell.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/tabletools/dialogs/tableCell.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/tabletools/dialogs/tableCell.js	(revision 4394)
@@ -19,8 +19,61 @@
 		}
 
+		/**
+		 *
+		 * @param dialogName
+		 * @param callback [ childDialog ]
+		 */
+		function getDialogValue( dialogName, callback )
+		{
+			var onOk = function()
+			{
+				releaseHandlers( this );
+				callback( this );
+			};
+			var onCancel = function()
+			{
+				releaseHandlers( this );
+			};
+			var bindToDialog = function( dialog )
+			{
+				dialog.on( 'ok', onOk );
+				dialog.on( 'cancel', onCancel );
+			};
+			var releaseHandlers = function( dialog )
+			{
+				dialog.removeListener( 'ok', onOk );
+				dialog.removeListener( 'cancel', onCancel );
+			};
+			editor.execCommand( dialogName );
+			if ( editor._.storedDialogs.colordialog )
+				bindToDialog( editor._.storedDialogs.colordialog );
+			else
+			{
+				CKEDITOR.on( 'dialogDefinition', function( e )
+				{
+					if ( e.data.name != dialogName )
+						return;
+
+					var definition = e.data.definition;
+
+					e.removeListener();
+					definition.onLoad = CKEDITOR.tools.override( definition.onLoad, function( orginal )
+					{
+						return function()
+						{
+							bindToDialog( this );
+							definition.onLoad = orginal;
+							if ( typeof orginal == 'function' )
+								orginal.call( this );
+						};
+					} );
+				});
+			}
+		}
+
 		return {
 			title : langCell.title,
-			minWidth : 480,
-			minHeight : 140,
+			minWidth : CKEDITOR.env.ie && CKEDITOR.env.quirks ? 550 : 480,
+			minHeight : CKEDITOR.env.ie ? ( CKEDITOR.env.quirks ? 180 : 150 ) : 140,
 			contents : [
 				{
@@ -32,5 +85,5 @@
 						{
 							type : 'hbox',
-							widths : [ '45%', '10%', '45%' ],
+							widths : [ '40%', '5%', '40%' ],
 							children :
 							[
@@ -269,40 +322,89 @@
 										spacer(),
 										{
-											type : 'text',
-											id : 'bgColor',
-											label : langCell.bgColor,
-											labelLayout : 'horizontal',
-											widths : [ '50%', '50%' ],
-											'default' : '',
-											setup : function( selectedCell )
-											{
-												this.setValue( selectedCell.getAttribute( 'bgColor' ) || '' );
-											},
-											commit : function( selectedCell )
-											{
-												if ( this.getValue() )
-													selectedCell.setAttribute( 'bgColor', this.getValue() );
-												else
-													selectedCell.removeAttribute( 'bgColor' );
-											}
-										},
-										{
-											type : 'text',
-											id : 'borderColor',
-											label : langCell.borderColor,
-											labelLayout : 'horizontal',
-											widths : [ '50%', '50%' ],
-											'default' : '',
-											setup : function( selectedCell )
-											{
-												this.setValue( selectedCell.getAttribute( 'borderColor' ) || '' );
-											},
-											commit : function( selectedCell )
-											{
-												if ( this.getValue() )
-													selectedCell.setAttribute( 'borderColor', this.getValue() );
-												else
-													selectedCell.removeAttribute( 'borderColor' );
-											}
+											type : 'hbox',
+											padding : 0,
+											widths : [ '80%', '20%' ],
+											children :
+											[
+												{
+													type : 'text',
+													id : 'bgColor',
+													label : langCell.bgColor,
+													labelLayout : 'horizontal',
+													widths : [ '70%', '30%' ],
+													'default' : '',
+													setup : function( selectedCell )
+													{
+														this.setValue( selectedCell.getAttribute( 'bgColor' ) || '' );
+													},
+													commit : function( selectedCell )
+													{
+														if ( this.getValue() )
+															selectedCell.setAttribute( 'bgColor', this.getValue() );
+														else
+															selectedCell.removeAttribute( 'bgColor' );
+													}
+												},
+												{
+													type : 'button',
+													id : 'bgColorChoose',
+													label : langCell.chooseColor,
+													style : 'margin-left: 10px',
+													onClick : function()
+													{
+														var self = this;
+														getDialogValue( 'colordialog', function( colorDialog )
+														{
+															self.getDialog().getContentElement( 'info', 'bgColor' ).setValue(
+																colorDialog.getContentElement( 'picker', 'selectedColor' ).getValue()
+															);
+														} );
+													}
+												}
+											]
+										},
+										spacer(),
+										{
+											type : 'hbox',
+											padding : 0,
+											widths : [ '80%', '20%' ],
+											children :
+											[
+												{
+													type : 'text',
+													id : 'borderColor',
+													label : langCell.borderColor,
+													labelLayout : 'horizontal',
+													widths : [ '70%', '30%' ],
+													'default' : '',
+													setup : function( selectedCell )
+													{
+														this.setValue( selectedCell.getStyle( 'border-color' ) || '' );
+													},
+													commit : function( selectedCell )
+													{
+														if ( this.getValue() )
+															selectedCell.setStyle( 'border-color', this.getValue() );
+														else
+															selectedCell.removeStyle( 'border-color' );
+													}
+												},
+												{
+													type : 'button',
+													id : 'borderColorChoose',
+													label : langCell.chooseColor,
+													style : 'margin-left: 10px',
+													onClick : function()
+													{
+														var self = this;
+														getDialogValue( 'colordialog', function( colorDialog )
+														{
+															self.getDialog().getContentElement( 'info', 'borderColor' ).setValue(
+																colorDialog.getContentElement( 'picker', 'selectedColor' ).getValue()
+															);
+														} );
+													}
+												}
+											]
 										}
 									]
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/templates/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/templates/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/templates/plugin.js	(revision 4394)
@@ -86,5 +86,5 @@
 	[
 		CKEDITOR.getUrl(
-			'_source/' + // %REMOVE_LINE%
+			'_source/' + // @Packager.RemoveLine
 			'plugins/templates/templates/default.js' )
 	];
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/templates/templates/default.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/templates/templates/default.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/templates/templates/default.js	(revision 4394)
@@ -20,5 +20,5 @@
 				html:
 					'<h3>' +
-						'<img style="margin-right: 10px" height="100" alt="" width="100" align="left"/>' +
+						'<img style="margin-right: 10px" height="100" width="100" align="left"/>' +
 						'Type the title here'+
 					'</h3>' +
@@ -32,11 +32,11 @@
 				description: 'A template that defines two colums, each one with a title, and some text.',
 				html:
-					'<table cellspacing="0" cellpadding="0" width="100%" border="0">' +
+					'<table cellspacing="0" cellpadding="0" style="width:100%" border="0">' +
 						'<tr>' +
-							'<td width="50%">' +
+							'<td style="width:50%">' +
 								'<h3>Title 1</h3>' +
 							'</td>' +
 							'<td></td>' +
-							'<td width="50%">' +
+							'<td style="width:50%">' +
 								'<h3>Title 2</h3>' +
 							'</td>' +
@@ -65,5 +65,5 @@
 							'Title goes here' +
 						'</h3>' +
-						'<table style="float: right" cellspacing="0" cellpadding="0" width="150" border="1">' +
+						'<table style="float: right" cellspacing="0" cellpadding="0" style="width:150px" border="1">' +
 							'<caption style="border:solid 1px black">' +
 								'<strong>Table title</strong>' +
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/uicolor/dialogs/uicolor.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/uicolor/dialogs/uicolor.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/uicolor/dialogs/uicolor.js	(revision 4394)
@@ -38,5 +38,5 @@
 		{
 			var url = CKEDITOR.getUrl(
-					'_source/' + // %REMOVE_LINE%
+					'_source/' + // @Packager.RemoveLine
 					'plugins/uicolor/yui/'
 				);
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/uicolor/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/uicolor/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/uicolor/plugin.js	(revision 4394)
@@ -25,5 +25,5 @@
 		// Load YUI js files.
 		CKEDITOR.scriptLoader.load( CKEDITOR.getUrl(
-			'_source/' + // %REMOVE_LINE%
+			'_source/' + // @Packager.RemoveLine
 			'plugins/uicolor/yui/yui.js'
 		));
@@ -31,5 +31,5 @@
 		// Load YUI css files.
 		editor.element.getDocument().appendStyleSheet( CKEDITOR.getUrl(
-				'_source/' + // %REMOVE_LINE%
+				'_source/' + // @Packager.RemoveLine
 				'plugins/uicolor/yui/assets/yui.css'
 		));
Index: /CKEditor/branches/versions/3.0.x/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/plugins/wysiwygarea/plugin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/plugins/wysiwygarea/plugin.js	(revision 4394)
@@ -82,12 +82,22 @@
 				// If we're inserting a block at dtd-violated position, split
 				// the parent blocks until we reach blockLimit.
-				var parent, dtd;
-				if ( this.config.enterMode != CKEDITOR.ENTER_BR && isBlock )
+				var current, dtd;
+				if ( isBlock )
 				{
-					while( ( parent = range.getCommonAncestor( false, true ) )
-							&& ( dtd = CKEDITOR.dtd[ parent.getName() ] )
+					while( ( current = range.getCommonAncestor( false, true ) )
+							&& ( dtd = CKEDITOR.dtd[ current.getName() ] )
 							&& !( dtd && dtd [ elementName ] ) )
 					{
-						range.splitBlock();
+						// If we're in an empty block which indicate a new paragraph,
+						// simply replace it with the inserting block.(#3664)
+						if ( range.checkStartOfBlock()
+							 && range.checkEndOfBlock() )
+						{
+							range.setStartBefore( current );
+							range.collapse( true );
+							current.remove();
+						}
+						else
+							range.splitBlock();
 					}
 				}
@@ -121,4 +131,11 @@
 			}, 0, this );
 		}
+	}
+
+	// DOM modification here should not bother dirty flag.(#4385)
+	function restoreDirty( editor )
+	{
+		if( !editor.checkDirty() )
+			setTimeout( function(){ editor.resetDirty(); } );
 	}
 
@@ -144,4 +161,5 @@
 			 && !path.block )
 		{
+			restoreDirty( editor );
 			var bms = selection.createBookmarks(),
 				fixedBlock = range.fixBlock( true,
@@ -194,4 +212,5 @@
 		if ( lastNode && lastNode.getName && ( lastNode.getName() in nonExitableElementNames ) )
 		{
+			restoreDirty( editor );
 			var paddingBlock = editor.document.createElement(
 					( CKEDITOR.env.ie && enterMode != CKEDITOR.ENTER_BR ) ?
@@ -364,24 +383,4 @@
 						domDocument	= editor.document	= new CKEDITOR.dom.document( domDocument );
 
-						// Gecko need a key event to 'wake up' the editing
-						// ability when document is empty.(#3864)
-						var firstNode = domDocument.getBody().getFirst();
-						if ( CKEDITOR.env.gecko
-							&& firstNode && firstNode.is
-							&& firstNode.is( 'br' ) && firstNode.hasAttribute( '_moz_editor_bogus_node' ) )
-						{
-							var keyEventSimulate = domDocument.$.createEvent( "KeyEvents" );
-							keyEventSimulate.initKeyEvent( 'keypress', true, true, domWindow.$, false,
-								false, false, false, 0, 32 );
-							domDocument.$.dispatchEvent( keyEventSimulate );
-							var bogusText = domDocument.getBody().getFirst() ;
-							// Compensate the line maintaining <br> if enterMode is not block.
-							if ( editor.config.enterMode == CKEDITOR.ENTER_BR )
-								domDocument.createElement( 'br', { attributes: { '_moz_dirty' : "" } } )
-									.replace( bogusText );
-							else
-								bogusText.remove();
-						}
-
 						// Gecko/Webkit need some help when selecting control type elements. (#3448)
 						if ( !( CKEDITOR.env.ie || CKEDITOR.env.opera) )
@@ -413,5 +412,5 @@
 						}
 
-						var focusTarget = ( CKEDITOR.env.ie || CKEDITOR.env.safari ) ?
+						var focusTarget = ( CKEDITOR.env.ie || CKEDITOR.env.webkit ) ?
 								domWindow : domDocument;
 
@@ -423,4 +422,30 @@
 						focusTarget.on( 'focus', function()
 							{
+								// Gecko need a key event to 'wake up' the editing
+								// ability when document is empty.(#3864)
+								if ( CKEDITOR.env.gecko )
+								{
+									var first = body;
+									while( first.firstChild )
+										first = first.firstChild;
+
+									if( !first.nextSibling
+										&& ( 'BR' == first.tagName )
+										&& first.hasAttribute( '_moz_editor_bogus_node' ) )
+									{
+										var keyEventSimulate = domDocument.$.createEvent( "KeyEvents" );
+										keyEventSimulate.initKeyEvent( 'keypress', true, true, domWindow.$, false,
+											false, false, false, 0, 32 );
+										domDocument.$.dispatchEvent( keyEventSimulate );
+										var bogusText = domDocument.getBody().getFirst() ;
+										// Compensate the line maintaining <br> if enterMode is not block.
+										if ( editor.config.enterMode == CKEDITOR.ENTER_BR )
+											domDocument.createElement( 'br', { attributes: { '_moz_dirty' : "" } } )
+												.replace( bogusText );
+										else
+											bogusText.remove();
+									}
+								}
+
 								editor.focusManager.focus();
 							});
@@ -430,4 +455,24 @@
 							keystrokeHandler.attach( domDocument );
 
+						// Cancel default action for backspace in IE on control types. (#4047)
+						if ( CKEDITOR.env.ie )
+						{
+							editor.on( 'key', function( event )
+							{
+								// Backspace.
+								var control = event.data.keyCode == 8
+											  && editor.getSelection().getSelectedElement();
+								if ( control )
+								{
+									// Make undo snapshot.
+									editor.fire( 'saveSnapshot' );
+									// Remove manually.
+									control.remove();
+									editor.fire( 'saveSnapshot' );
+									event.cancel();
+								}
+							} );
+						}
+
 						// Adds the document body as a context menu target.
 						if ( editor.contextMenu )
@@ -452,4 +497,8 @@
 									isPendingFocus = false;
 								}
+								setTimeout( function()
+								{
+									editor.fire( 'dataReady' );
+								}, 0 );
 
 								/*
@@ -512,5 +561,7 @@
 									'<html dir="' + editor.config.contentsLangDirection + '">' +
 									'<head>' +
-										'<link href="' + editor.config.contentsCss + '" type="text/css" rel="stylesheet" _fcktemp="true"/>' +
+										'<link type="text/css" rel="stylesheet" href="' +
+										[].concat( editor.config.contentsCss ).join( '"><link type="text/css" rel="stylesheet" href="' ) +
+										'">' +
 										'<style type="text/css" _fcktemp="true">' +
 											editor._.styles.join( '\n' ) +
Index: /CKEditor/branches/versions/3.0.x/_source/skins/kama/skin.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/skins/kama/skin.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/skins/kama/skin.js	(revision 4394)
@@ -26,13 +26,7 @@
 				editor.config.width -= 12;
 
-			var menuHead;
-			function menuSetUiColor( color )
-			{
-				if ( !menuHead )
-					return null;
-
-				var uiStyle = menuHead.append('style');
-
-				var cssSrc = "/* UI Color Support */\
+			var uiColorMenus = [];
+			var uiColorRegex = /\$color/g;
+			var uiColorMenuCss = "/* UI Color Support */\
 .cke_skin_kama .cke_menuitem .cke_icon_wrapper\
 {\
@@ -88,37 +82,56 @@
 	background-color: $color !important;\
 }";
-
-				uiStyle.setAttribute( "type", "text/css" );
-				var regex = /\$color/g;
-
-				// We have to split CSS declarations for webkit.
-				if ( CKEDITOR.env.webkit )
-				{
-					cssSrc = cssSrc.split( '}' ).slice( 0, -1 );
-					for ( var i in cssSrc )
-							cssSrc[ i ] = cssSrc[ i ].split( '{' );
+			// We have to split CSS declarations for webkit.
+			if ( CKEDITOR.env.webkit )
+			{
+				uiColorMenuCss = uiColorMenuCss.split( '}' ).slice( 0, -1 );
+				for ( var i = 0 ; i < uiColorMenuCss.length ; i++ )
+					uiColorMenuCss[ i ] = uiColorMenuCss[ i ].split( '{' );
+			}
+
+			function addStylesheet( document )
+			{
+				var node = document.getHead().append( 'style' );
+				node.setAttribute( "id", "cke_ui_color" );
+				node.setAttribute( "type", "text/css" );
+
+				return node;
+			}
+
+			function updateStylesheets( styleNodes, styleContent, replace )
+			{
+				var r, i, content;
+				for ( var id  = 0 ; id < styleNodes.length ; id++ )
+				{
+					if ( CKEDITOR.env.webkit )
+					{
+						// Truncate manually.
+						for ( i = 0 ; i < styleNodes[ id ].$.sheet.rules.length ; i++ )
+							styleNodes[ id ].$.sheet.removeRule( i );
+
+						for ( i = 0 ; i < styleContent.length ; i++ )
+						{
+							content = styleContent[ i ][ 1 ];
+							for ( r  = 0 ; r < replace.length ; r++ )
+								content = content.replace( replace[ r ][ 0 ], replace[ r ][ 1 ] );
+
+							styleNodes[ id ].$.sheet.addRule( styleContent[ i ][ 0 ], content );
+						}
+					}
+					else
+					{
+						content = styleContent;
+						for ( r  = 0 ; r < replace.length ; r++ )
+							content = content.replace( replace[ r ][ 0 ], replace[ r ][ 1 ] );
+
+						if ( CKEDITOR.env.ie )
+							styleNodes[ id ].$.styleSheet.cssText = content;
+						else
+							styleNodes[ id ].setHtml( content );
+					}
 				}
-
-				return ( menuSetUiColor =
-					function( color )
-					{
-						if ( CKEDITOR.env.webkit )
-						{
-							for ( var i in cssSrc )
-								uiStyle.$.sheet.addRule(
-									cssSrc[ i ][ 0 ], cssSrc[ i ][ 1 ].replace( regex, color )
-								);
-						}
-						else
-						{
-							var css = cssSrc.replace( regex, color );
-
-							if ( CKEDITOR.env.ie )
-								uiStyle.$.styleSheet.cssText = css;
-							else
-								uiStyle.setHtml( css );
-						}
-					})( color );
 			}
+
+			var uiColorRegexp = /\$color/g;
 
 			CKEDITOR.tools.extend( editor,
@@ -133,5 +146,6 @@
 				setUiColor : function( color )
 				{
-					var uiStyle = CKEDITOR.document.getHead().append('style'),
+					var cssContent,
+						uiStyle = addStylesheet( CKEDITOR.document ),
 						cssId = '#cke_' + editor.name.replace('.', '\\.');
 
@@ -145,74 +159,45 @@
 					var cssProperties = "background-color: $color !important;";
 
-					uiStyle.setAttribute("type", "text/css");
+					if ( CKEDITOR.env.webkit )
+						cssContent = [ [ cssSelectors, cssProperties ] ];
+					else
+						cssContent = cssSelectors + '{' + cssProperties + '}';
 
 					return ( this.setUiColor =
 						function( color )
 						{
-							var css = cssProperties.replace( '$color', color );
+							var replace = [ [ uiColorRegexp, color ] ];
 							editor.uiColor = color;
 
-							if ( CKEDITOR.env.ie )
-								uiStyle.$.styleSheet.cssText = cssSelectors + '{' + css + '}';
-							else if ( CKEDITOR.env.webkit )
-								uiStyle.$.sheet.addRule( cssSelectors, css );
-							else
-								uiStyle.setHtml( cssSelectors + '{' + css + '}' );
-
-							menuSetUiColor( color );
+							// Update general style.
+							updateStylesheets( [ uiStyle ], cssContent, replace );
+
+							// Update menu styles.
+							updateStylesheets( uiColorMenus, uiColorMenuCss, replace );
 						})( color );
 				}
 			});
 
-			// If the "menu" plugin is loaded, register the listeners.
-			if ( CKEDITOR.menu )
-			{
-				var old = CKEDITOR.menu.prototype.show;
-
-				CKEDITOR.menu.prototype.show = function()
-				{
-					old.apply( this, arguments );
-
-					if ( !menuHead && editor == this.editor )
-					{
-						// Save reference.
-						menuHead = this._.element.getDocument().getHead();
-						menuSetUiColor( editor.getUiColor() );
-					}
-				};
-			}
+			editor.on( 'menuShow', function( event )
+			{
+				var panel = event.data[ 0 ];
+				var iframe = panel.element.getElementsByTag( 'iframe' ).getItem( 0 ).getFrameDocument();
+
+				// Add stylesheet if missing.
+				if ( !iframe.getById( 'cke_ui_color' ) )
+				{
+					var node = addStylesheet( iframe );
+					uiColorMenus.push( node );
+
+					var color = editor.getUiColor();
+					// Set uiColor for new menu.
+					if ( color )
+						updateStylesheets( [ node ], uiColorMenuCss, [ [ uiColorRegexp, color ] ] );
+				}
+			});
 
 			// Apply UI color if specified in config.
 			if ( editor.config.uiColor )
 				editor.setUiColor( editor.config.uiColor );
-
-			// Fix editor's width. HPadding and 100% width iframe issue.
-//			if ( CKEDITOR.env.ie && CKEDITOR.env.quirks )
-//			{
-//				editor.on( 'mode', function( event )
-//				{
-//					var container = editor.getResizable();
-//					editor.resize( container.$.offsetWidth-10, container.$.offsetHeight );
-//					event.removeListener();
-//				});
-//			}
-
-//			if ( CKEDITOR.env.ie && ( CKEDITOR.env.quirks || CKEDITOR.env.version < 7 ) )
-//			{
-//				editor.on( 'themeLoaded', function( event )
-//				{
-//					var toolbars = editor.container.getChild( [0, 0, 0, 0, 0, 0, 0] ).getChildren();
-//					for ( var i = 0 ; i < toolbars.count() ; i++ )
-//					{
-//						var toolbar = toolbars.getItem( i );
-
-//						var last = toolbar.getLast();
-//						if ( !last || !last.getPrevious().hasClass( 'cke_rcombo' ) )
-//							continue;
-//
-//						last.addClass( 'cke_toolbar_end_last' );
-//					}
-//				});
-//			}
 		}
 	};
Index: /CKEditor/branches/versions/3.0.x/_source/skins/kama/toolbar.css
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/skins/kama/toolbar.css	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/skins/kama/toolbar.css	(revision 4394)
@@ -12,4 +12,10 @@
 		display: none;
 	}
+}
+
+.cke_skin_kama .cke_browser_webkit .cke_toolbox,
+.cke_skin_kama .cke_browser_webkit .cke_toolbox > span
+{
+	white-space: normal;
 }
 
Index: /CKEditor/branches/versions/3.0.x/_source/skins/office2003/toolbar.css
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/skins/office2003/toolbar.css	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/skins/office2003/toolbar.css	(revision 4394)
@@ -10,4 +10,10 @@
 		display: none;
 	}
+}
+
+.cke_skin_office2003 .cke_browser_webkit .cke_toolbox,
+.cke_skin_office2003 .cke_browser_webkit .cke_toolbox > span
+{
+	white-space: normal;
 }
 
Index: /CKEditor/branches/versions/3.0.x/_source/skins/v2/toolbar.css
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/skins/v2/toolbar.css	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/skins/v2/toolbar.css	(revision 4394)
@@ -10,4 +10,10 @@
 		display: none;
 	}
+}
+
+.cke_skin_v2 .cke_browser_webkit .cke_toolbox,
+.cke_skin_v2 .cke_browser_webkit .cke_toolbox > span
+{
+	white-space: normal;
 }
 
Index: /CKEditor/branches/versions/3.0.x/_source/themes/default/theme.js
===================================================================
--- /CKEditor/branches/versions/3.0.x/_source/themes/default/theme.js	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/_source/themes/default/theme.js	(revision 4394)
@@ -87,4 +87,7 @@
 			editor.container = container;
 
+			// Disable browser context menu for editor's chrome.
+			container.disableContextMenu();
+
 			editor.fireOnce( 'themeLoaded' );
 			editor.fireOnce( 'uiReady' );
@@ -153,5 +156,6 @@
 		destroy : function( editor )
 		{
-			var container = editor.container;
+			var container = editor.container,
+				panels = editor.panels;
 
 			/*
@@ -180,4 +184,7 @@
 				container.remove();
 
+			for( var i = 0 ; panels && i < panels.length ; i++ )
+					panels[ i ].remove();
+
 			if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
 			{
Index: /CKEditor/branches/versions/3.0.x/ckeditor.pack
===================================================================
--- /CKEditor/branches/versions/3.0.x/ckeditor.pack	(revision 4393)
+++ /CKEditor/branches/versions/3.0.x/ckeditor.pack	(revision 4394)
@@ -134,4 +134,5 @@
 					'_source/plugins/clipboard/plugin.js',
 					'_source/plugins/colorbutton/plugin.js',
+					'_source/plugins/colordialog/plugin.js',
 					'_source/plugins/contextmenu/plugin.js',
 					'_source/plugins/elementspath/plugin.js',
