Index: /CKEditor/branches/versions/3.3.x/CHANGES.html
===================================================================
--- /CKEditor/branches/versions/3.3.x/CHANGES.html	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/CHANGES.html	(revision 5805)
@@ -35,4 +35,83 @@
 		CKEditor Changelog
 	</h1>
+	<h3>
+			CKEditor 3.3.2</h3>
+	<p>
+			New features:</p>
+	<ul>
+		<li><a href="http://dev.fckeditor.net/ticket/5882">#5882</a> : Introduce the dialog#selectPage event, replicating the OnDialogTabChange feature available in FCKeditor 2.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5927">#5927</a> : The native controls in ui.dialog.elements can be styled with the controlStyle definition.</li>
+	</ul>
+	<p>
+			Fixed issues:</p>
+	<ul>
+		<li><a href="http://dev.fckeditor.net/ticket/1644">#1644</a> : Removed references to cursor:hand in the stylesheets.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5411">#5411</a> : Anchor, hidden fields and Page-Break objects can no longer be resized.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5456">#5456</a> : Initial focus incorect in api_dialog sample page.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5628">#5628</a> : Incorrect &lt;pre&gt; siblings merging.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5829">#5829</a> : Adding validation for start number field in list style dialog.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5845">#5845</a> : Context menu on empty list item loses selection.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5860">#5860</a> : [IE] &gt; in attribute values are incorrectly escaped.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5905">#5905</a> : SCAYT is not any more enabled by default.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5736">#5736</a> : Improved the text generated for mailto: links if no text was selected.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4779">#4779</a> : Adjust resize_minWidth and resize_minHeight if smaller than actual dimensions.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5687">#5687</a> : Navigation through colors is now compatible with RTL.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4615">#4615</a> : [IE] Text fields are no longer disrupted in dialog with RTL.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5887">#5887</a> : The number of columns in the smileys table is now configurable via the smiley_columns setting.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5100">#5100</a> : It was possible to drag&amp;drop some elements like context menu items or dropdown entries.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5933">#5933</a> : Text color and background color panels don't have scrollbars anymore under office2003 and v2 skins.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5943">#5943</a> : An error is no longer generated when using percent or pixel values in the image dialog.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5951">#5951</a> : Avoid problems with security systems due to the usage of UniversalXPConnect.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5441">#5441</a> : Avoid errors if the editor instance is removed from the DOM before calling its destroy() method.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4997">#4997</a> : Provide better access to the native input in the ui.dialog.file element.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5914">#5914</a> : Modified the Smileys dialog to make active only the images and not their borders.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5565">#5565</a> : The scrollbar does not behaves erratically when opening a rich combo in RTL page.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5843">#5843</a> : In CKEditor 3.3: When we set the focus in the 'instanceReady' event, FF3.6 is giving js error.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5902">#5902</a> : paste and pastetext dialogs cannot be skinned easily.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5959">#5959</a> : Dialog auto focus does not check for hidden tabs.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5415">#5415</a> : Undo not working when we change the Table Properties for the table on a saved page.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5435">#5435</a> : IE: we can't start Numbered/Bulleted list in Tables by Clicking on Insert/Remove Numbers/Bullets Icon.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5832">#5832</a> : The JQuery adapter sample is not working properly with SSL.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5728">#5728</a> : Text field & Upload Button in Upload Tab of Image Properties dialog are not shown Properly in Arabic.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5436">#5436</a> : IE: Cursor goes to next Table Cell after we insert a Smiley in the Table Cell.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5580">#5580</a> : Maximize does not work properly in the Office 2003 and V2 skins.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5495">#5495</a> : The link dialog was breaking the undo system on some situations.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5775">#5775</a> : Required field's label to contain a CSS class to allow it to be styled differently.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5999">#5999</a> : Table dialog rows and columns fields are now marked as required.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5693">#5693</a> : baseHref detection in the flash dialog now works correctly.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5690">#5690</a> : Table cell's width attribute is now respected properly.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5819">#5819</a> : Introducing the new removeFormatCleanup event and making sure remove format doesn't break the showborder plugin.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5558">#5558</a> : After pasting on WebKit based browsers the editor now scrolls to the end of the pasted content.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5799">#5799</a> : Correct plugin dependencies for the liststyle plugin with contextMenu and dialog.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5436">#5436</a> : IE: The cursor was moving to the wrong position when inserting inline elements at the end of cells on tables.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5984">#5984</a> : Firefox: CTRL+HOME was creating an unwanted empty paragraph at the start of the document.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5634">#5634</a> : IE: It was needed to click twice in the editor to make it editable on some situations.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5338">#5338</a> : Pasting from Open Office could lead on error.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5224">#5224</a> : Some invalid markup could break the editor.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5455">#5455</a> : It was not possible to remove formatting from pasted content on specific cases.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5735">#5735</a> : IE: The editor was having focus issues when the previous selection got hidden by scroll operations.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5563">#5563</a> : Firefox: The disableObjectResizing and disableNativeTableHandles settings stopped working.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5781">#5781</a> : Firefox: Editing was not possible in an empty document.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5293">#5293</a> : Firefox: Unwanted BR tags were being left in the editor output when it should be empty.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5280">#5280</a> : IE: Scrollbars where reacting improperly when clicking in the bar space.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5840">#5840</a> : Some dialog access keys are conflicting with "Ctrl + A", select all text behavior on text input.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/6059">#6059</a> : Changing list type didn't preserve the list's attributes.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5193">#5193</a> : In Firefox, the element path options had the text cursor instead of the arrow.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/6073">#6073</a> : The list context menu was showing the wrong option when in a mixed list hierarchy.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/6074">#6074</a> : The Insert Table Column command was duplicating the selected column cells ids.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/6066">#6066</a> : The toolbar combos had the text cursor instead of the arrow.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/6062">#6062</a> : The toolbar buttons had the text cursor instead of the arrow.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/6068">#6068</a> : [IE7] A few labels were hidden in a RTL language.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/6000">#6000</a> : Safari and Chrome where scrolling the contents to the top when moving the focus to the editor.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/6090">#6090</a> : IE: Textarea with selection inside causes Link dialog issues.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5079">#5079</a> : Page break in lists move to above the list when you switch from WYSIWYG to HTML mode and back.</li>
+		<li>Updated the following language files:<ul>
+			<li>Chinese Simplified;</li>
+			<li>Hebrew;</li>
+			<li><a href="http://dev.fckeditor.net/ticket/5962">#5962</a> : German;</li>
+			<li><a href="http://dev.fckeditor.net/ticket/5645">#5645</a> : Portuguese;</li>
+			<li><a href="http://dev.fckeditor.net/ticket/5797">#5797</a> : Turkish;</li>
+		</ul></li>
+	</ul>
 	<h3>
 			CKEditor 3.3.1</h3>
Index: /CKEditor/branches/versions/3.3.x/_dev/docs_build/docs_build.conf
===================================================================
--- /CKEditor/branches/versions/3.3.x/_dev/docs_build/docs_build.conf	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_dev/docs_build/docs_build.conf	(revision 5805)
@@ -1,3 +1,3 @@
-﻿/*
+/*
 	This is an example of one way you could set up a configuration file to more
 	conveniently define some commandline options. You might like to do this if
Index: /CKEditor/branches/versions/3.3.x/_dev/dtd_test/dtd_test.html
===================================================================
--- /CKEditor/branches/versions/3.3.x/_dev/dtd_test/dtd_test.html	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_dev/dtd_test/dtd_test.html	(revision 5805)
@@ -11,5 +11,5 @@
 
 // Define the CKEDITOR namespace.
-var CKEDITOR = {};
+var CKEDITOR = { on : function(){} };
 
 	//]]>
Index: /CKEditor/branches/versions/3.3.x/_dev/fixlineends/fixlineends.bat
===================================================================
--- /CKEditor/branches/versions/3.3.x/_dev/fixlineends/fixlineends.bat	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_dev/fixlineends/fixlineends.bat	(revision 5805)
@@ -5,3 +5,3 @@
 ::
 
-php fixlineends.php --excluderegex=/(?:_dev[\\\/]_thirdparty)/ --eolstripwhite --eofnewline --eofstripwhite --nohidden --nosystem ../../
+php fixlineends.php --excluderegex=/(?:_dev[\\\/]_thirdparty)/ --eolstripwhite --eofnewline --eofstripwhite --nohidden --nosystem --fixbom ../../
Index: /CKEditor/branches/versions/3.3.x/_dev/fixlineends/fixlineends.php
===================================================================
--- /CKEditor/branches/versions/3.3.x/_dev/fixlineends/fixlineends.php	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_dev/fixlineends/fixlineends.php	(revision 5805)
@@ -64,4 +64,8 @@
 $list["xml"] = CRLF;
 
+$bom = array();
+$bom['asp'] = true;
+$bom['js'] = true;
+
 /**
  * Do not modify anything below
@@ -107,4 +111,9 @@
  */
 $nodotfiles = false;
+/**
+ * If set to true, BOM characters are fixed
+ * @var boolean $fixbom
+ */
+$fixbom = false;
 /**
  * How deep to recurse into subdirectories
@@ -317,4 +326,15 @@
         }
         $new_content .= $line;
+    }
+
+    if ($GLOBALS['fixbom']) {
+        $before_fixing = $new_content;
+        $ext = strtolower(substr($path, strrpos($path, ".") + 1));
+        $new_content = stripUtf8Bom( $new_content );
+        if (!empty($GLOBALS['bom'][$ext])) {
+            $new_content = "\xEF\xBB\xBF" . $new_content; // BOM
+        }
+        if ($new_content != $before_fixing)
+            $modified = true;
     }
 
@@ -353,4 +373,16 @@
 
 /**
+ * Strip BOM from a string
+ * @param string $data
+ */
+function stripUtf8Bom( $data )
+{
+    if ( substr( $data, 0, 3 ) == "\xEF\xBB\xBF" )
+        return stripUtf8Bom(substr_replace( $data, '', 0, 3 )) ;
+
+    return $data ;
+}
+
+/**
  * Fix ending lines in all files at given path
  *
@@ -453,18 +485,21 @@
             use regex to exclude files, preg_match() format expected
 
+       --fixbom
+            fix BOM characters
+
        --help
             display this help and exit
 
        --noarchive
-            if set to true, archive files are skipped (Windows only)
+            skip archive files (Windows only)
 
        --nodotfiles
-            if set to true, dot files are skipped
+            skip dot files
 
        --nohidden
-            if set to true, hidden files are skipped (Windows only)
+            skip hidden files (Windows only)
 
        --nosystem
-            if set to true, system files are skipped (Windows only)
+            skip system files (Windows only)
 
        --maxdepth
@@ -525,4 +560,8 @@
             case '--nodotfiles':
                 $GLOBALS['nodotfiles'] = true;
+                break;
+
+            case '--fixbom':
+                $GLOBALS['fixbom'] = true;
                 break;
 
@@ -572,11 +611,11 @@
 
 if ($_SERVER['argc']>1) {
-	include "../_thirdparty/console_getopt/Getopt.php";
+    include "../_thirdparty/console_getopt/Getopt.php";
 
     if ($windows) {
-        $longoptions = array("eofstripwhite", "eofnewline", "eolstripwhite", "help", "noarchive", "nohidden", "nosystem", "nodotfiles", "maxdepth=", "excluderegex=");
+        $longoptions = array("eofstripwhite", "eofnewline", "eolstripwhite", "help", "noarchive", "nohidden", "nosystem", "nodotfiles", "maxdepth=", "excluderegex=", "fixbom");
     }
     else {
-        $longoptions = array("eofstripwhite", "eofnewline", "eolstripwhite", "help", "nodotfiles", "maxdepth=", "excluderegex=");
+        $longoptions = array("eofstripwhite", "eofnewline", "eolstripwhite", "help", "nodotfiles", "maxdepth=", "excluderegex=", "fixbom");
     }
 
Index: /CKEditor/branches/versions/3.3.x/_dev/packager/packagefilegen_full.html
===================================================================
--- /CKEditor/branches/versions/3.3.x/_dev/packager/packagefilegen_full.html	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_dev/packager/packagefilegen_full.html	(revision 5805)
@@ -80,5 +80,5 @@
 		var path = downloaded[i].replace( CKEDITOR.basePath, '' );
 
-		if ( path == 'config.js' )
+		if ( path == 'config.js' || /\/styles\/default\.js/.test( path ) )
 			continue;
 
Index: /CKEditor/branches/versions/3.3.x/_dev/releaser/release.bat
===================================================================
--- /CKEditor/branches/versions/3.3.x/_dev/releaser/release.bat	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_dev/releaser/release.bat	(revision 5805)
@@ -11,3 +11,3 @@
 :: rmdir /S /Q release
 
-java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.3.1" ckeditor_3.3.1 --run-before-release=langtool.bat
+java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.3.2" ckeditor_3.3.2 --run-before-release=langtool.bat
Index: /CKEditor/branches/versions/3.3.x/_dev/releaser/release.sh
===================================================================
--- /CKEditor/branches/versions/3.3.x/_dev/releaser/release.sh	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_dev/releaser/release.sh	(revision 5805)
@@ -13,4 +13,4 @@
 
 pushd $DIR
-java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.3.1" ckeditor_3.3.1 --run-before-release=$LANGTOOL
+java -jar ckreleaser/ckreleaser.jar ckreleaser.release ../.. release "3.3.2" ckeditor_3.3.2 --run-before-release=$LANGTOOL
 popd
Index: /CKEditor/branches/versions/3.3.x/_samples/api_dialog.html
===================================================================
--- /CKEditor/branches/versions/3.3.x/_samples/api_dialog.html	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_samples/api_dialog.html	(revision 5805)
@@ -92,4 +92,11 @@
 				]
 			});
+
+			// Rewrite the 'onFocus' handler to always focus 'url' field.
+			dialogDefinition.onFocus = function()
+			{
+				var urlField = this.getContentElement( 'info', 'url' );
+				urlField.select();
+			};
 		}
 	});
Index: /CKEditor/branches/versions/3.3.x/_samples/jqueryadapter.html
===================================================================
--- /CKEditor/branches/versions/3.3.x/_samples/jqueryadapter.html	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_samples/jqueryadapter.html	(revision 5805)
@@ -8,5 +8,5 @@
 	<title>jQuery adapter - CKEditor Sample</title>
 	<meta content="text/html; charset=utf-8" http-equiv="content-type" />
-	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
+	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
 	<!-- CKReleaser %REMOVE_LINE%
 	<script type="text/javascript" src="../ckeditor.js"></script>
Index: /CKEditor/branches/versions/3.3.x/_samples/output_html.html
===================================================================
--- /CKEditor/branches/versions/3.3.x/_samples/output_html.html	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_samples/output_html.html	(revision 5805)
@@ -47,5 +47,5 @@
 						 * Style sheet for the contents
 						 */
-						contentsCss : 'body {color:#000; background-color#FFF;}',
+						contentsCss : 'body {color:#000; background-color#:FFF;}',
 
 						/*
Index: /CKEditor/branches/versions/3.3.x/_source/core/dom/element.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/core/dom/element.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/core/dom/element.js	(revision 5805)
@@ -851,6 +851,14 @@
 				function()
 				{
-					var attributes = this.$.attributes;
-					return ( attributes.length > 1 || ( attributes.length == 1 && attributes[0].nodeName != '_cke_expando' ) );
+					var attrs = this.$.attributes,
+						attrsNum = attrs.length;
+
+					// The _moz_dirty attribute might get into the element after pasting (#5455)
+					var execludeAttrs = { _cke_expando : 1, _moz_dirty : 1 };
+
+					return attrsNum > 0 &&
+						( attrsNum > 2 ||
+							!execludeAttrs[ attrs[0].nodeName ] ||
+							( attrsNum == 2 && !execludeAttrs[ attrs[1].nodeName ] ) );
 				},
 
@@ -1163,4 +1171,5 @@
 				{
 					this.$.style.MozUserSelect = 'none';
+					this.on( 'dragstart', function (evt) { evt.data.preventDefault(); } );
 				}
 			: CKEDITOR.env.webkit ?
@@ -1168,4 +1177,5 @@
 				{
 					this.$.style.KhtmlUserSelect = 'none';
+					this.on( 'dragstart', function (evt) { evt.data.preventDefault(); } );
 				}
 			:
Index: /CKEditor/branches/versions/3.3.x/_source/core/dom/range.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/core/dom/range.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/core/dom/range.js	(revision 5805)
@@ -698,5 +698,5 @@
 
 		/**
-		 * Move the range out of bookmark nodes if they're been the container.
+		 * Move the range out of bookmark nodes if they'd been the container.
 		 */
 		optimizeBookmark: function()
@@ -1167,11 +1167,11 @@
 					var walker = new CKEDITOR.dom.walker( walkerRange ),
 					    blockBoundary,  // The node on which the enlarging should stop.
-						tailBr, //
-					    defaultGuard = CKEDITOR.dom.walker.blockBoundary(
+						tailBr, // In case BR as block boundary.
+					    notBlockBoundary = CKEDITOR.dom.walker.blockBoundary(
 								( unit == CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS ) ? { br : 1 } : null ),
 						// Record the encountered 'blockBoundary' for later use.
 						boundaryGuard = function( node )
 						{
-							var retval = defaultGuard( node );
+							var retval = notBlockBoundary( node );
 							if ( !retval )
 								blockBoundary = node;
@@ -1194,6 +1194,7 @@
 					blockBoundary = blockBoundary || body;
 
-					// Start the range at different position by comparing
-					// the document position of it with 'enlargeable' node.
+					// Start the range either after the end of found block (<p>...</p>[text)
+					// or at the start of block (<p>[text...), by comparing the document position
+					// with 'enlargeable' node.
 					this.setStartAt(
 							blockBoundary,
@@ -1221,6 +1222,6 @@
 					blockBoundary = blockBoundary || body;
 
-					// Start the range at different position by comparing
-					// the document position of it with 'enlargeable' node.
+					// Close the range either before the found block start (text]<p>...</p>) or at the block end (...text]</p>)
+					// by comparing the document position with 'enlargeable' node.
 					this.setEndAt(
 							blockBoundary,
@@ -1238,6 +1239,13 @@
 		/**
 		 *  Descrease the range to make sure that boundaries
-		 *  always anchor beside text nodes or innermost element.
+		*  always anchor beside text nodes or innermost element.
 		 * @param {Number} mode  ( CKEDITOR.SHRINK_ELEMENT | CKEDITOR.SHRINK_TEXT ) The shrinking mode.
+		 * <dl>
+		 * 	 <dt>CKEDITOR.SHRINK_ELEMENT</dt>
+		 * 	 <dd>Shrink the range boundaries to the edge of the innermost element.</dd>
+		 * 	 <dt>CKEDITOR.SHRINK_TEXT</dt>
+		 * 	 <dd>Shrink the range boudaries to anchor by the side of enclosed text  node, range remains if there's no text nodes on boundaries at all.</dd>
+		  * </dl>
+		 * @param {Boolean} selectContents Whether result range anchors at the inner OR outer boundary of the node.
 		 */
 		shrink : function( mode, selectContents )
@@ -1639,10 +1647,10 @@
 			   : CKEDITOR.POSITION_BEFORE_END );
 
-			var walker = new CKEDITOR.dom.walker( walkerRange ),
-			 retval = false;
+			var walker = new CKEDITOR.dom.walker( walkerRange );
 			walker.evaluator = elementBoundaryEval;
 			return walker[ checkType == CKEDITOR.START ?
 				'checkBackward' : 'checkForward' ]();
 		},
+
 		// Calls to this function may produce changes to the DOM. The range may
 		// be updated to reflect such changes.
@@ -1792,5 +1800,5 @@
 			var walkerRange = this.clone();
 
-			// Optimize and analyze the range to avoid DOM destructive nature of walker. (#
+			// Optimize and analyze the range to avoid DOM destructive nature of walker. (#5780)
 			walkerRange.optimize();
 			if ( walkerRange.startContainer.type != CKEDITOR.NODE_ELEMENT
@@ -1844,5 +1852,5 @@
 /**
  * Check boundary types.
- * @see CKEDITOR.dom.range::checkBoundaryOfElement
+ * @see CKEDITOR.dom.range.prototype.checkBoundaryOfElement
  */
 CKEDITOR.START = 1;
@@ -1850,4 +1858,8 @@
 CKEDITOR.STARTEND = 3;
 
+/**
+ * Shrink range types.
+ * @see CKEDITOR.dom.range.prototype.shrink
+ */
 CKEDITOR.SHRINK_ELEMENT = 1;
 CKEDITOR.SHRINK_TEXT = 2;
Index: /CKEditor/branches/versions/3.3.x/_source/core/dom/walker.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/core/dom/walker.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/core/dom/walker.js	(revision 5805)
@@ -360,10 +360,4 @@
 			return this.blockBoundary( { br : 1 } );
 	};
-	/**
-	 * Whether the node is a bookmark node's inner text node.
-	 */
-	CKEDITOR.dom.walker.bookmarkContents = function( node )
-	{
-	},
 
 	/**
Index: /CKEditor/branches/versions/3.3.x/_source/core/htmlparser.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/core/htmlparser.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/core/htmlparser.js	(revision 5805)
@@ -173,4 +173,10 @@
 				{
 					tagName = tagName.toLowerCase();
+
+					// There are some tag names that can break things, so let's
+					// simply ignore them when parsing. (#5224)
+					if ( /="/.test( tagName ) )
+						continue;
+
 					var attribs = {},
 						attribMatch,
Index: /CKEditor/branches/versions/3.3.x/_source/core/htmlparser/fragment.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/core/htmlparser/fragment.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/core/htmlparser/fragment.js	(revision 5805)
@@ -109,7 +109,7 @@
 		}
 
-		function sendPendingBRs()
-		{
-			while ( pendingBRs.length )
+		function sendPendingBRs( brsToIgnore )
+		{
+			while ( pendingBRs.length - ( brsToIgnore || 0 ) > 0 )
 				currentNode.add( pendingBRs.shift() );
 		}
@@ -393,5 +393,6 @@
 		parser.parse( fragmentHtml );
 
-		sendPendingBRs();
+		// Send all pending BRs except one, which we consider a unwanted bogus. (#5293)
+		sendPendingBRs( !CKEDITOR.env.ie && 1 );
 
 		// Close all pending nodes.
Index: /CKEditor/branches/versions/3.3.x/_source/core/tools.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/core/tools.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/core/tools.js	(revision 5805)
@@ -221,4 +221,8 @@
 		},
 
+		/**
+		 * Whether the object contains no properties of it's own.
+ 		 * @param object
+		 */
 		isEmpty : function ( object )
 		{
@@ -230,4 +234,5 @@
 			return true;
 		},
+
 		/**
 		 * Transforms a CSS property name to its relative DOM style name.
@@ -338,5 +343,5 @@
 		htmlEncodeAttr : function( text )
 		{
-			return text.replace( /"/g, '&quot;' ).replace( /</g, '&lt;' ).replace( />/, '&gt;' );
+			return text.replace( /"/g, '&quot;' ).replace( /</g, '&lt;' ).replace( />/g, '&gt;' );
 		},
 
@@ -669,4 +674,8 @@
 		},
 
+		/**
+		 * Append the 'px' length unit to the size if it's missing.
+		 * @param length
+		 */
 		cssLength : (function()
 		{
@@ -678,4 +687,9 @@
 		})(),
 
+		/**
+		 * String specified by {@param str} repeats {@param times} times.
+		 * @param str
+		 * @param times
+		 */
 		repeat : function( str, times )
 		{
@@ -683,4 +697,8 @@
 		},
 
+		/**
+		 * Return the first successfully executed function's return value that
+		 * doesn't throw any exception.
+		 */
 		tryThese : function()
 		{
Index: /CKEditor/branches/versions/3.3.x/_source/lang/_translationstatus.txt
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/_translationstatus.txt	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/_translationstatus.txt	(revision 5805)
@@ -2,59 +2,59 @@
 For licensing, see LICENSE.html or http://ckeditor.com/license
 
-af.js      Found: 287 Missing: 237
-ar.js      Found: 451 Missing: 73
-bg.js      Found: 280 Missing: 244
-bn.js      Found: 281 Missing: 243
-bs.js      Found: 187 Missing: 337
-ca.js      Found: 490 Missing: 34
-cs.js      Found: 411 Missing: 113
-cy.js      Found: 452 Missing: 72
-da.js      Found: 404 Missing: 120
-de.js      Found: 444 Missing: 80
-el.js      Found: 286 Missing: 238
-en-au.js   Found: 369 Missing: 155
-en-ca.js   Found: 369 Missing: 155
-en-gb.js   Found: 370 Missing: 154
-eo.js      Found: 259 Missing: 265
-es.js      Found: 524 Missing: 0
-et.js      Found: 301 Missing: 223
-eu.js      Found: 403 Missing: 121
-fa.js      Found: 302 Missing: 222
-fi.js      Found: 518 Missing: 6
-fo.js      Found: 420 Missing: 104
-fr-ca.js   Found: 301 Missing: 223
-fr.js      Found: 403 Missing: 121
-gl.js      Found: 283 Missing: 241
-gu.js      Found: 300 Missing: 224
-he.js      Found: 523 Missing: 1
-hi.js      Found: 302 Missing: 222
-hr.js      Found: 404 Missing: 120
-hu.js      Found: 445 Missing: 79
-is.js      Found: 307 Missing: 217
-it.js      Found: 404 Missing: 120
-ja.js      Found: 413 Missing: 111
-km.js      Found: 275 Missing: 249
-ko.js      Found: 293 Missing: 231
-lt.js      Found: 306 Missing: 218
-lv.js      Found: 283 Missing: 241
-mn.js      Found: 300 Missing: 224
-ms.js      Found: 265 Missing: 259
-nb.js      Found: 470 Missing: 54
-nl.js      Found: 494 Missing: 30
-no.js      Found: 470 Missing: 54
-pl.js      Found: 411 Missing: 113
-pt-br.js   Found: 402 Missing: 122
-pt.js      Found: 282 Missing: 242
-ro.js      Found: 301 Missing: 223
-ru.js      Found: 467 Missing: 57
-sk.js      Found: 302 Missing: 222
-sl.js      Found: 410 Missing: 114
-sr-latn.js Found: 276 Missing: 248
-sr.js      Found: 275 Missing: 249
-sv.js      Found: 299 Missing: 225
-th.js      Found: 287 Missing: 237
-tr.js      Found: 494 Missing: 30
-uk.js      Found: 404 Missing: 120
-vi.js      Found: 481 Missing: 43
-zh-cn.js   Found: 404 Missing: 120
-zh.js      Found: 404 Missing: 120
+af.js      Found: 287 Missing: 238
+ar.js      Found: 451 Missing: 74
+bg.js      Found: 280 Missing: 245
+bn.js      Found: 281 Missing: 244
+bs.js      Found: 187 Missing: 338
+ca.js      Found: 490 Missing: 35
+cs.js      Found: 411 Missing: 114
+cy.js      Found: 452 Missing: 73
+da.js      Found: 404 Missing: 121
+de.js      Found: 522 Missing: 3
+el.js      Found: 286 Missing: 239
+en-au.js   Found: 369 Missing: 156
+en-ca.js   Found: 369 Missing: 156
+en-gb.js   Found: 370 Missing: 155
+eo.js      Found: 259 Missing: 266
+es.js      Found: 524 Missing: 1
+et.js      Found: 301 Missing: 224
+eu.js      Found: 403 Missing: 122
+fa.js      Found: 302 Missing: 223
+fi.js      Found: 518 Missing: 7
+fo.js      Found: 420 Missing: 105
+fr-ca.js   Found: 301 Missing: 224
+fr.js      Found: 403 Missing: 122
+gl.js      Found: 283 Missing: 242
+gu.js      Found: 300 Missing: 225
+he.js      Found: 525 Missing: 0
+hi.js      Found: 302 Missing: 223
+hr.js      Found: 404 Missing: 121
+hu.js      Found: 445 Missing: 80
+is.js      Found: 307 Missing: 218
+it.js      Found: 404 Missing: 121
+ja.js      Found: 413 Missing: 112
+km.js      Found: 275 Missing: 250
+ko.js      Found: 293 Missing: 232
+lt.js      Found: 306 Missing: 219
+lv.js      Found: 283 Missing: 242
+mn.js      Found: 300 Missing: 225
+ms.js      Found: 265 Missing: 260
+nb.js      Found: 470 Missing: 55
+nl.js      Found: 494 Missing: 31
+no.js      Found: 470 Missing: 55
+pl.js      Found: 411 Missing: 114
+pt-br.js   Found: 524 Missing: 1
+pt.js      Found: 282 Missing: 243
+ro.js      Found: 301 Missing: 224
+ru.js      Found: 467 Missing: 58
+sk.js      Found: 302 Missing: 223
+sl.js      Found: 410 Missing: 115
+sr-latn.js Found: 276 Missing: 249
+sr.js      Found: 275 Missing: 250
+sv.js      Found: 299 Missing: 226
+th.js      Found: 287 Missing: 238
+tr.js      Found: 524 Missing: 1
+uk.js      Found: 404 Missing: 121
+vi.js      Found: 481 Missing: 44
+zh-cn.js   Found: 523 Missing: 2
+zh.js      Found: 404 Missing: 121
Index: /CKEditor/branches/versions/3.3.x/_source/lang/af.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/af.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/af.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/ar.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/ar.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/ar.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/bg.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/bg.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/bg.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/bn.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/bn.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/bn.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/bs.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/bs.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/bs.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/ca.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/ca.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/ca.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/cs.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/cs.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/cs.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/cy.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/cy.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/cy.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/da.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/da.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/da.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/de.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/de.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/de.js	(revision 5805)
@@ -93,6 +93,6 @@
 		ok				: 'OK',
 		cancel			: 'Abbrechen',
-		close			: 'Close', // MISSING
-		preview			: 'Preview', // MISSING
+		close			: 'Schließen',
+		preview			: 'Vorschau',
 		generalTab		: 'Allgemein',
 		advancedTab		: 'Erweitert',
@@ -100,10 +100,10 @@
 		confirmNewPage	: 'Alle nicht gespeicherten Änderungen gehen verlohren. Sind sie sicher die neue Seite zu laden?',
 		confirmCancel	: 'Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schließen?',
-		options			: 'Options', // MISSING
-		target			: 'Target', // MISSING
-		targetNew		: 'New Window (_blank)', // MISSING
-		targetTop		: 'Topmost Window (_top)', // MISSING
-		targetSelf		: 'Same Window (_self)', // MISSING
-		targetParent	: 'Parent Window (_parent)', // MISSING
+		options			: 'Optionen',
+		target			: 'Zielseite',
+		targetNew		: 'Neues Fenster (_blank)',
+		targetTop		: 'Oberstes Fenster (_top)',
+		targetSelf		: 'Gleiches Fenster (_self)',
+		targetParent	: 'Oberes Fenster (_parent)',
 
 		// Put the voice-only part of the label in the span.
@@ -113,5 +113,5 @@
 	contextmenu :
 	{
-		options : 'Context Menu Options' // MISSING
+		options : 'Context Menu Optionen'
 	},
 
@@ -121,5 +121,5 @@
 		toolbar		: 'Sonderzeichen einfügen/editieren',
 		title		: 'Sonderzeichen auswählen',
-		options : 'Special Character Options' // MISSING
+		options : 'Sonderzeichen Optionen'
 	},
 
@@ -136,5 +136,5 @@
 		advanced	: 'Erweitert',
 		type		: 'Link-Typ',
-		toUrl		: 'URL', // MISSING
+		toUrl		: 'URL',
 		toAnchor	: 'Anker in dieser Seite',
 		toEmail		: 'E-Mail',
@@ -193,22 +193,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		circle				: 'Circle', // MISSING
-		disc				: 'Disc', // MISSING
-		square				: 'Square', // MISSING
-		none				: 'None', // MISSING
-		notset				: '<not set>', // MISSING
-		armenian			: 'Armenian numbering', // MISSING
-		georgian			: 'Georgian numbering (an, ban, gan, etc.)', // MISSING
-		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
-		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
-		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
-		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
-		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
-		decimal				: 'Decimal (1, 2, 3, etc.)', // MISSING
-		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
+		numberedTitle		: 'Nummerierte Listen-Eigenschaften',
+		bulletedTitle		: 'Listen-Eigenschaften',
+		type				: 'Typ',
+		start				: 'Start',
+		validateStartNumber				:'List Startnummer muss eine ganze Zahl sein.',
+		circle				: 'Ring',
+		disc				: 'Kreis',
+		square				: 'Quadrat',
+		none				: 'Keine',
+		notset				: '<nicht gesetzt>',
+		armenian			: 'Armenisch Nummerierung',
+		georgian			: 'Georgisch Nummerierung (an, ban, gan, etc.)',
+		lowerRoman			: 'Klein römisch (i, ii, iii, iv, v, etc.)',
+		upperRoman			: 'Groß römisch (I, II, III, IV, V, etc.)',
+		lowerAlpha			: 'Klein alpha (a, b, c, d, e, etc.)',
+		upperAlpha			: 'Groß alpha (A, B, C, D, E, etc.)',
+		lowerGreek			: 'Klein griechisch (alpha, beta, gamma, etc.)',
+		decimal				: 'Dezimal (1, 2, 3, etc.)',
+		decimalLeadingZero	: 'Dezimal mit führende  Null (01, 02, 03, etc.)'
 	},
 
@@ -246,5 +247,5 @@
 		widthPx		: 'Pixel',
 		widthPc		: '%',
-		widthUnit	: 'width unit', // MISSING
+		widthUnit	: 'Breite Einheit',
 		height		: 'Höhe',
 		cellSpace	: 'Zellenabstand außen',
@@ -297,5 +298,5 @@
 			invalidRowSpan	: '"Anzahl Zeilen verbinden" muss eine Ganzzahl sein.',
 			invalidColSpan	: '"Anzahl Spalten verbinden" muss eine Ganzzahl sein.',
-			chooseColor		: 'Choose' // MISSING
+			chooseColor		: 'Wählen'
 		},
 
@@ -409,5 +410,5 @@
 		height		: 'Höhe',
 		lockRatio	: 'Größenverhältnis beibehalten',
-		unlockRatio	: 'Unlock Ratio', // MISSING
+		unlockRatio	: 'Ratio Freischalten',
 		resetSize	: 'Größe zurücksetzen',
 		border		: 'Rahmen',
@@ -421,10 +422,10 @@
 		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?',
-		urlMissing	: 'Image source URL is missing.', // MISSING
-		validateWidth	: 'Width must be a whole number.', // MISSING
-		validateHeight	: 'Height must be a whole number.', // MISSING
-		validateBorder	: 'Border must be a whole number.', // MISSING
-		validateHSpace	: 'HSpace must be a whole number.', // MISSING
-		validateVSpace	: 'VSpace must be a whole number.' // MISSING
+		urlMissing	: 'Imagequelle URL fehlt.',
+		validateWidth	: 'Breite muß eine ganze Zahl sein.',
+		validateHeight	: 'Höhe muß eine ganze Zahl sein.',
+		validateBorder	: 'Rahmen muß eine ganze Zahl sein.',
+		validateHSpace	: 'Horizontal-Abstand muß eine ganze Zahl sein.',
+		validateVSpace	: 'Vertikal-Abstand must be a whole number.'
 	},
 
@@ -508,10 +509,10 @@
 		toolbar	: 'Smiley',
 		title	: 'Smiley auswählen',
-		options : 'Smiley Options' // MISSING
+		options : 'Smiley Optionen'
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path', // MISSING
+		eleLabel : 'Elements Pfad',
 		eleTitle : '%1 Element'
 	},
@@ -539,5 +540,5 @@
 		pasteMsg	: 'Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Strg+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.',
 		securityMsg	: 'Aufgrund von Sicherheitsbeschränkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fügen Sie den Inhalt erneut in diesem Fenster ein.',
-		pasteArea	: 'Paste Area' // MISSING
+		pasteArea	: 'Einfügebereich'
 	},
 
@@ -547,5 +548,5 @@
 		toolbar			: 'aus MS-Word einfügen',
 		title			: 'aus MS-Word einfügen',
-		error			: 'It was not possible to clean up the pasted data due to an internal error' // MISSING
+		error			: 'Aufgrund eines internen Fehlers war es nicht möglich die eingefügten Daten zu bereinigen'
 	},
 
@@ -560,5 +561,5 @@
 		button			: 'Vorlagen',
 		title			: 'Vorlagen',
-		options : 'Template Options', // MISSING
+		options : 'Vorlagen Optionen',
 		insertOption	: 'Aktuellen Inhalt ersetzen',
 		selectPromptMsg	: 'Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):',
@@ -571,5 +572,5 @@
 	{
 		label		: 'Stil',
-		panelTitle	: 'Formatting Styles', // MISSING
+		panelTitle	: 'Formatierungenstil',
 		panelTitle1	: 'Block Stilart',
 		panelTitle2	: 'Inline Stilart',
@@ -596,17 +597,17 @@
 	div :
 	{
-		title				: 'Create Div Container', // MISSING
-		toolbar				: 'Create Div Container', // MISSING
-		cssClassInputLabel	: 'Stylesheet Classes', // MISSING
-		styleSelectLabel	: 'Style', // MISSING
-		IdInputLabel		: 'Id', // MISSING
-		languageCodeInputLabel	: ' Language Code', // MISSING
-		inlineStyleInputLabel	: 'Inline Style', // MISSING
-		advisoryTitleInputLabel	: 'Advisory Title', // MISSING
-		langDirLabel		: 'Language Direction', // MISSING
-		langDirLTRLabel		: 'Left to Right (LTR)', // MISSING
-		langDirRTLLabel		: 'Right to Left (RTL)', // MISSING
-		edit				: 'Edit Div', // MISSING
-		remove				: 'Remove Div' // MISSING
+		title				: 'Div Container erzeugen',
+		toolbar				: 'Div Container erzeugen',
+		cssClassInputLabel	: 'Stylesheet Klasse',
+		styleSelectLabel	: 'Stil',
+		IdInputLabel		: 'Id',
+		languageCodeInputLabel	: ' Sprache Code',
+		inlineStyleInputLabel	: 'Inline Style',
+		advisoryTitleInputLabel	: 'Beratungs Titel',
+		langDirLabel		: 'Sprache Richtung',
+		langDirLTRLabel		: 'Links nach Rechs (LTR)',
+		langDirRTLLabel		: 'Rechs nach Links (RTL)',
+		edit				: 'Div Bearbeiten',
+		remove				: 'Div Entfernen'
   	},
 
@@ -629,5 +630,5 @@
 		textColorTitle	: 'Textfarbe',
 		bgColorTitle	: 'Hintergrundfarbe',
-		panelTitle		: 'Colors', // MISSING
+		panelTitle		: 'Farben',
 		auto			: 'Automatisch',
 		more			: 'Weitere Farben...'
@@ -681,5 +682,5 @@
 	{
 		title			: 'Rechtschreibprüfung während der Texteingabe',
-		opera_title		: 'Not supported by Opera', // MISSING
+		opera_title		: 'Nicht von Opera unterstützt',
 		enable			: 'SCAYT einschalten',
 		disable			: 'SCAYT ausschalten',
@@ -695,18 +696,18 @@
 
 		optionsTab		: 'Optionen',
-		allCaps			: 'Ignore All-Caps Words', // MISSING
-		ignoreDomainNames : 'Ignore Domain Names', // MISSING
-		mixedCase		: 'Ignore Words with Mixed Case', // MISSING
-		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
+		allCaps			: 'Groß geschriebenen Wörter ignorieren',
+		ignoreDomainNames : 'Domain-Namen ignorieren',
+		mixedCase		: 'Wörter mit gemischte Setzkasten ignorieren',
+		mixedWithDigits	: 'Wörter mit Zahlen ignorieren',
 
 		languagesTab	: 'Sprachen',
 
 		dictionariesTab	: 'Wörterbücher',
-		dic_field_name	: 'Dictionary name', // MISSING
-		dic_create		: 'Create', // MISSING
-		dic_restore		: 'Restore', // MISSING
-		dic_delete		: 'Delete', // MISSING
-		dic_rename		: 'Rename', // MISSING
-		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type it\'s name and click the Restore button.', // MISSING
+		dic_field_name	: 'Wörterbuchname',
+		dic_create		: 'Erzeugen',
+		dic_restore		: 'Wiederherstellen',
+		dic_delete		: 'Löschen',
+		dic_rename		: 'Umbenennen',
+		dic_info		: 'Anfangs wird das Benutzerwörterbuch in einem Cookie gespeichert. Allerdings sind Cookies in der Größe begrenzt. Wenn das Benutzerwörterbuch bis zu einem Punkt wächst, wo es nicht mehr in einem Cookie gespeichert werden kann, wird das Benutzerwörterbuch auf dem Server gespeichert. Um Ihr persönliches Wörterbuch auf dem Server zu speichern, müssen Sie einen Namen für das Wörterbuch angeben. Falls  Sie schon ein gespeicherte Wörterbuch haben, geben Sie bitte dessen Namen ein und klicken Sie auf die Schaltfläche Wiederherstellen.',
 
 		aboutTab		: 'Über'
@@ -722,5 +723,5 @@
 
 	maximize : 'Maximieren',
-	minimize : 'Minimize', // MISSING
+	minimize : 'Minimieren',
 
 	fakeobjects :
@@ -736,12 +737,12 @@
 	colordialog :
 	{
-		title		: 'Select color', // MISSING
-		options	:	'Color Options', // MISSING
-		highlight	: 'Highlight', // MISSING
-		selected	: 'Selected Color', // MISSING
-		clear		: 'Clear' // MISSING
-	},
-
-	toolbarCollapse	: 'Collapse Toolbar', // MISSING
-	toolbarExpand	: 'Expand Toolbar' // MISSING
+		title		: 'Farbe wählen',
+		options	:	'Farbeoptionen',
+		highlight	: 'Hervorheben',
+		selected	: 'Ausgewählte Farbe',
+		clear		: 'Entfernen'
+	},
+
+	toolbarCollapse	: 'Symbolleiste einklappen',
+	toolbarExpand	: 'Symbolleiste ausklappen'
 };
Index: /CKEditor/branches/versions/3.3.x/_source/lang/el.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/el.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/el.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/en-au.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/en-au.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/en-au.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/en-ca.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/en-ca.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/en-ca.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/en-gb.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/en-gb.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/en-gb.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/en.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/en.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/en.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type',
 		start				: 'Start',
+		validateStartNumber				:'List start number must be a whole number.',
 		circle				: 'Circle',
 		disc				: 'Disc',
@@ -643,5 +644,5 @@
 		'000080' : 'Navy',
 		'4B0082' : 'Indigo',
-		'696969' : 'Dim Gray',
+		'696969' : 'Dark Gray',
 		'B22222' : 'Fire Brick',
 		'A52A2A' : 'Brown',
@@ -659,5 +660,5 @@
 		'00F' : 'Blue',
 		'EE82EE' : 'Violet',
-		'A9A9A9' : 'Dark Gray',
+		'A9A9A9' : 'Dim Gray',
 		'FFA07A' : 'Light Salmon',
 		'FFA500' : 'Orange',
Index: /CKEditor/branches/versions/3.3.x/_source/lang/eo.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/eo.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/eo.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/es.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/es.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/es.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Tipo',
 		start				: 'Inicio',
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Círculo',
 		disc				: 'Disco',
Index: /CKEditor/branches/versions/3.3.x/_source/lang/et.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/et.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/et.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/eu.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/eu.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/eu.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/fa.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/fa.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/fa.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/fi.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/fi.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/fi.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Tyyppi',
 		start				: 'Alku',
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Ympyrä',
 		disc				: 'Levy',
Index: /CKEditor/branches/versions/3.3.x/_source/lang/fo.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/fo.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/fo.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/fr-ca.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/fr-ca.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/fr-ca.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/fr.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/fr.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/fr.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/gl.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/gl.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/gl.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/gu.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/gu.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/gu.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/he.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/he.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/he.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'סוג',
 		start				: 'תחילת מספור',
+		validateStartNumber				:'שדה תחילת המספור חייב להכיל מספר שלם.',
 		circle				: 'עיגול ריק',
 		disc				: 'עיגול מלא',
@@ -260,5 +261,5 @@
 		invalidCols		: 'שדה מספר העמודות חייב להיות מספר גדול מ 0.',
 		invalidBorder	: 'שדה גודל המסגרת חייב להיות מספר.',
-		invalidWidth	: 'שדה רוחב הטבלה חייב להיות רוחב.',
+		invalidWidth	: 'שדה רוחב הטבלה חייב להיות מספר.',
 		invalidHeight	: 'שדה גובה הטבלה חייב להיות מספר.',
 		invalidCellSpacing	: 'שדה ריווח התאים חייב להיות מספר.',
@@ -737,5 +738,5 @@
 	{
 		title		: 'בחירת צבע',
-		options	:	'Color Options', // MISSING
+		options	:	'אפשרויות צבע',
 		highlight	: 'סימון',
 		selected	: 'בחירה',
Index: /CKEditor/branches/versions/3.3.x/_source/lang/hi.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/hi.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/hi.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/hr.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/hr.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/hr.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/hu.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/hu.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/hu.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/is.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/is.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/is.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/it.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/it.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/it.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/ja.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/ja.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/ja.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -222,7 +223,7 @@
 		replaceWith			: '置換えする文字列:',
 		notFoundMsg			: '指定された文字列は見つかりませんでした。',
-		matchCase			: '部分一致',
-		matchWord			: '単語単位で一致',
-		matchCyclic			: '大文字/小文字区別一致',
+		matchCase			: '大文字と小文字を区別する',
+		matchWord			: '単語単位で探す',
+		matchCyclic			: '一周する',
 		replaceAll			: 'すべて置換え',
 		replaceSuccessMsg	: '%1 個置換しました。'
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/km.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/km.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/km.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/ko.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/ko.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/ko.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/lt.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/lt.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/lt.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/lv.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/lv.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/lv.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/mn.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/mn.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/mn.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/ms.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/ms.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/ms.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/nb.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/nb.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/nb.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/nl.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/nl.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/nl.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/no.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/no.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/no.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/pl.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/pl.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/pl.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/pt-br.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/pt-br.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/pt-br.js	(revision 5805)
@@ -5,7 +5,6 @@
 
 /**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Brazilian Portuguese language.
- */
+* @fileOverview
+*/
 
 /**#@+
@@ -32,9 +31,9 @@
 	 * of reading non-English words. So be careful while translating it.
 	 */
-	editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
+	editorTitle : 'Editor de Texto, %1, pressione ALT 0 para obter ajuda.',
 
 	// ARIA descriptions.
-	toolbar	: 'Toolbar', // MISSING
-	editor	: 'Rich Text Editor', // MISSING
+	toolbar	: 'Barra de Ferramentas',
+	editor	: 'Editor de Texto',
 
 	// Toolbar buttons without dialogs.
@@ -57,5 +56,5 @@
 	horizontalrule	: 'Inserir Linha Horizontal',
 	pagebreak		: 'Inserir Quebra de Página',
-	unlink			: 'Remover Hiperlink',
+	unlink			: 'Remover Link',
 	undo			: 'Desfazer',
 	redo			: 'Refazer',
@@ -69,5 +68,5 @@
 		upload			: 'Enviar ao Servidor',
 		uploadSubmit	: 'Enviar para o Servidor',
-		image			: 'Figura',
+		image			: 'Imagem',
 		flash			: 'Flash',
 		form			: 'Formulário',
@@ -88,22 +87,22 @@
 		langCode		: 'Idioma',
 		longDescr		: 'Descrição da URL',
-		cssClass		: 'Classe de Folhas de Estilo',
+		cssClass		: 'Classe de CSS',
 		advisoryTitle	: 'Título',
 		cssStyle		: 'Estilos',
 		ok				: 'OK',
 		cancel			: 'Cancelar',
-		close			: 'Close', // MISSING
-		preview			: 'Preview', // MISSING
+		close			: 'Fechar',
+		preview			: 'Visualizar',
 		generalTab		: 'Geral',
 		advancedTab		: 'Avançado',
 		validateNumberFailed : 'Este valor não é um número.',
-		confirmNewPage	: 'Todas as mudanças não salvas serão perdidas. Tem certeza de que quer carregar outra página?',
+		confirmNewPage	: 'Todas as mudanças não salvas serão perdidas. Tem certeza de que quer abrir uma nova página?',
 		confirmCancel	: 'Algumas opções foram alteradas. Tem certeza de que quer fechar a caixa de diálogo?',
-		options			: 'Options', // MISSING
-		target			: 'Target', // MISSING
-		targetNew		: 'New Window (_blank)', // MISSING
-		targetTop		: 'Topmost Window (_top)', // MISSING
-		targetSelf		: 'Same Window (_self)', // MISSING
-		targetParent	: 'Parent Window (_parent)', // MISSING
+		options			: 'Opções',
+		target			: 'Destino',
+		targetNew		: 'Nova Janela (_blank)',
+		targetTop		: 'Janela de Cima (_top)',
+		targetSelf		: 'Mesma Janela (_self)',
+		targetParent	: 'Janela Pai (_parent)',
 
 		// Put the voice-only part of the label in the span.
@@ -113,5 +112,5 @@
 	contextmenu :
 	{
-		options : 'Context Menu Options' // MISSING
+		options : 'Opções Menu de Contexto'
 	},
 
@@ -121,5 +120,5 @@
 		toolbar		: 'Inserir Caractere Especial',
 		title		: 'Selecione um Caractere Especial',
-		options : 'Special Character Options' // MISSING
+		options : 'Opções de Caractere Especial'
 	},
 
@@ -127,8 +126,8 @@
 	link :
 	{
-		toolbar		: 'Inserir/Editar Hiperlink',
-		other 		: '<other>', // MISSING
-		menu		: 'Editar Hiperlink',
-		title		: 'Hiperlink',
+		toolbar		: 'Inserir/Editar Link',
+		other 		: '<outro>',
+		menu		: 'Editar Link',
+		title		: 'Editar Link',
 		info		: 'Informações',
 		target		: 'Destino',
@@ -136,5 +135,5 @@
 		advanced	: 'Avançado',
 		type		: 'Tipo de hiperlink',
-		toUrl		: 'URL', // MISSING
+		toUrl		: 'URL',
 		toAnchor	: 'Âncora nesta página',
 		toEmail		: 'E-Mail',
@@ -143,5 +142,5 @@
 		targetFrameName	: 'Nome do Frame de Destino',
 		targetPopupName	: 'Nome da Janela Pop-up',
-		popupFeatures	: 'Atributos da Janela Pop-up',
+		popupFeatures	: 'Propriedades da Janela Pop-up',
 		popupResizable	: 'Redimensionável',
 		popupStatusBar	: 'Barra de Status',
@@ -155,5 +154,5 @@
 		popupLeft		: 'Esquerda',
 		popupHeight		: 'Altura',
-		popupTop		: 'Superior',
+		popupTop		: 'Topo',
 		id				: 'Id',
 		langDir			: 'Direção do idioma',
@@ -166,15 +165,15 @@
 		advisoryTitle	: 'Título',
 		advisoryContentType	: 'Tipo de Conteúdo',
-		cssClasses		: 'Classe de Folhas de Estilo',
-		charset			: 'Conjunto de Caracteres do Hiperlink',
+		cssClasses		: 'Classe de CSS',
+		charset			: 'Charset do Link',
 		styles			: 'Estilos',
 		selectAnchor	: 'Selecione uma âncora',
-		anchorName		: 'Pelo Nome da âncora',
-		anchorId		: 'Pelo Id do Elemento',
+		anchorName		: 'Nome da âncora',
+		anchorId		: 'Id da âncora',
 		emailAddress	: 'Endereço E-Mail',
 		emailSubject	: 'Assunto da Mensagem',
 		emailBody		: 'Corpo da Mensagem',
-		noAnchors		: '(Não há âncoras disponíveis neste documento)',
-		noUrl			: 'Por favor, digite o endereço do Hiperlink',
+		noAnchors		: '(Não há âncoras no documento)',
+		noUrl			: 'Por favor, digite o endereço do Link',
 		noEmail			: 'Por favor, digite o endereço de e-mail'
 	},
@@ -193,22 +192,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		circle				: 'Circle', // MISSING
-		disc				: 'Disc', // MISSING
-		square				: 'Square', // MISSING
-		none				: 'None', // MISSING
-		notset				: '<not set>', // MISSING
-		armenian			: 'Armenian numbering', // MISSING
-		georgian			: 'Georgian numbering (an, ban, gan, etc.)', // MISSING
-		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
-		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
-		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
-		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
-		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
-		decimal				: 'Decimal (1, 2, 3, etc.)', // MISSING
-		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
+		numberedTitle		: 'Propriedades da Lista Numerada',
+		bulletedTitle		: 'Propriedades da Lista sem Numeros',
+		type				: 'Tipo',
+		start				: 'Início',
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
+		circle				: 'Círculo',
+		disc				: 'Disco',
+		square				: 'Quadrado',
+		none				: 'Nenhum',
+		notset				: '<não definido>',
+		armenian			: 'Numeração Armêna',
+		georgian			: 'Numeração da Geórgia (an, ban, gan, etc.)',
+		lowerRoman			: 'Numeração Romana minúscula (i, ii, iii, iv, v, etc.)',
+		upperRoman			: 'Numeração Romana maiúscula (I, II, III, IV, V, etc.)',
+		lowerAlpha			: 'Numeração Alfabética minúscula (a, b, c, d, e, etc.)',
+		upperAlpha			: 'Numeração Alfabética Maiúscula (A, B, C, D, E, etc.)',
+		lowerGreek			: 'Numeração Grega minúscula (alpha, beta, gamma, etc.)',
+		decimal				: 'Numeração Decimal (1, 2, 3, etc.)',
+		decimalLeadingZero	: 'Numeração Decimal com zeros (01, 02, 03, etc.)'
 	},
 
@@ -246,8 +246,8 @@
 		widthPx		: 'pixels',
 		widthPc		: '%',
-		widthUnit	: 'width unit', // MISSING
+		widthUnit	: 'unidade largura',
 		height		: 'Altura',
 		cellSpace	: 'Espaçamento',
-		cellPad		: 'Enchimento',
+		cellPad		: 'Margem interna',
 		caption		: 'Legenda',
 		summary		: 'Resumo',
@@ -257,20 +257,20 @@
 		headersRow		: 'Primeira linha',
 		headersBoth		: 'Ambos',
-		invalidRows		: '"Número de linhas" tem que ser um número maior que 0.',
-		invalidCols		: '"Número de colunas" tem que ser um número maior que 0.',
-		invalidBorder	: '"Tamanho da borda" tem que ser um número.',
-		invalidWidth	: '"Largura da tabela" tem que ser um número.',
-		invalidHeight	: '"Altura da tabela" tem que ser um número.',
-		invalidCellSpacing	: '"Espaçamento das células" tem que ser um número.',
-		invalidCellPadding	: '"Margem interna das células" tem que ser um número.',
+		invalidRows		: 'O número de linhas tem que ser um número maior que 0.',
+		invalidCols		: 'O número de colunas tem que ser um número maior que 0.',
+		invalidBorder	: 'O tamanho da borda tem que ser um número.',
+		invalidWidth	: 'A largura da tabela tem que ser um número.',
+		invalidHeight	: 'A altura da tabela tem que ser um número.',
+		invalidCellSpacing	: 'O espaçamento das células tem que ser um número.',
+		invalidCellPadding	: 'A margem interna das células tem que ser um número.',
 
 		cell :
 		{
 			menu			: 'Célula',
-			insertBefore	: 'Inserir célula à esquerda',
-			insertAfter		: 'Inserir célula à direita',
+			insertBefore	: 'Inserir célula a esquerda',
+			insertAfter		: 'Inserir célula a direita',
 			deleteCell		: 'Remover Células',
 			merge			: 'Mesclar Células',
-			mergeRight		: 'Mesclar com célula à direita',
+			mergeRight		: 'Mesclar com célula a direita',
 			mergeDown		: 'Mesclar com célula abaixo',
 			splitHorizontal	: 'Dividir célula horizontalmente',
@@ -295,7 +295,7 @@
 			invalidWidth	: 'A largura da célula tem que ser um número.',
 			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.',
-			chooseColor		: 'Choose' // MISSING
+			invalidRowSpan	: 'Linhas cobertas tem que ser um número inteiro.',
+			invalidColSpan	: 'Colunas cobertas tem que ser um número inteiro.',
+			chooseColor		: 'Escolher'
 		},
 
@@ -311,6 +311,6 @@
 		{
 			menu			: 'Coluna',
-			insertBefore	: 'Inserir coluna à esquerda',
-			insertAfter		: 'Inserir coluna à direita',
+			insertBefore	: 'Inserir coluna a esquerda',
+			insertAfter		: 'Inserir coluna a direita',
 			deleteColumn	: 'Remover Colunas'
 		}
@@ -342,5 +342,5 @@
 		title		: 'Formatar Formulário',
 		menu		: 'Formatar Formulário',
-		action		: 'Action',
+		action		: 'Ação',
 		method		: 'Método',
 		encoding	: 'Codificação'
@@ -351,5 +351,5 @@
 	{
 		title		: 'Formatar Caixa de Listagem',
-		selectInfo	: 'Info',
+		selectInfo	: 'Informações',
 		opAvail		: 'Opções disponíveis',
 		value		: 'Valor',
@@ -399,32 +399,32 @@
 	image :
 	{
-		title		: 'Formatar Figura',
+		title		: 'Formatar Imagem',
 		titleButton	: 'Formatar Botão de Imagem',
-		menu		: 'Formatar Figura',
-		infoTab		: 'Informações da Figura',
+		menu		: 'Formatar Imagem',
+		infoTab		: 'Informações da Imagem',
 		btnUpload	: 'Enviar para o Servidor',
-		upload		: 'Submeter',
+		upload		: 'Enviar',
 		alt			: 'Texto Alternativo',
 		width		: 'Largura',
 		height		: 'Altura',
-		lockRatio	: 'Manter proporções',
-		unlockRatio	: 'Unlock Ratio', // MISSING
+		lockRatio	: 'Travar Proporções',
+		unlockRatio	: 'Destravar Proporções',
 		resetSize	: 'Redefinir para o Tamanho Original',
 		border		: 'Borda',
-		hSpace		: 'Horizontal',
-		vSpace		: 'Vertical',
+		hSpace		: 'HSpace',
+		vSpace		: 'VSpace',
 		align		: 'Alinhamento',
 		alignLeft	: 'Esquerda',
 		alignRight	: 'Direita',
-		alertUrl	: 'Por favor, digite o URL da figura.',
-		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?',
-		urlMissing	: 'Image source URL is missing.', // MISSING
-		validateWidth	: 'Width must be a whole number.', // MISSING
-		validateHeight	: 'Height must be a whole number.', // MISSING
-		validateBorder	: 'Border must be a whole number.', // MISSING
-		validateHSpace	: 'HSpace must be a whole number.', // MISSING
-		validateVSpace	: 'VSpace must be a whole number.' // MISSING
+		alertUrl	: 'Por favor, digite a URL da imagem.',
+		linkTab		: 'Link',
+		button2Img	: 'Deseja transformar o botão de imagem em uma imagem comum?',
+		img2Button	: 'Deseja transformar a imagem em um botão de imagem?',
+		urlMissing	: 'URL da imagem está faltando.',
+		validateWidth	: 'A largura deve ser um número inteiro.',
+		validateHeight	: 'A altura deve ser um número inteiro.',
+		validateBorder	: 'A borda deve ser um número inteiro.',
+		validateHSpace	: 'O HSpace deve ser um número inteiro.',
+		validateVSpace	: 'O VSpace deve ser um número inteiro.'
 	},
 
@@ -436,5 +436,5 @@
 		title			: 'Propriedades do Flash',
 		chkPlay			: 'Tocar Automaticamente',
-		chkLoop			: 'Loop',
+		chkLoop			: 'Tocar Infinitamente',
 		chkMenu			: 'Habilita Menu Flash',
 		chkFull			: 'Permitir tela cheia',
@@ -445,5 +445,5 @@
 		access			: 'Acesso ao script',
 		accessAlways	: 'Sempre',
-		accessSameDomain: 'Mesmo domínio',
+		accessSameDomain: 'Acessar Mesmo Domínio',
 		accessNever		: 'Nunca',
 		align			: 'Alinhamento',
@@ -458,10 +458,10 @@
 		alignTop		: 'Superior',
 		quality			: 'Qualidade',
-		qualityBest		: 'Melhor',
-		qualityHigh		: 'Alta',
-		qualityAutoHigh	: 'Alta automático',
-		qualityMedium	: 'Média',
-		qualityAutoLow	: 'Média automático',
-		qualityLow		: 'Baixa',
+		qualityBest		: 'Qualidade Melhor',
+		qualityHigh		: 'Qualidade Alta',
+		qualityAutoHigh	: 'Qualidade Alta Automática',
+		qualityMedium	: 'Qualidade Média',
+		qualityAutoLow	: 'Qualidade Baixa Automática',
+		qualityLow		: 'Qualidade Baixa',
 		windowModeWindow: 'Janela',
 		windowModeOpaque: 'Opaca',
@@ -472,11 +472,11 @@
 		width			: 'Largura',
 		height			: 'Altura',
-		hSpace			: 'Horizontal',
-		vSpace			: 'Vertical',
-		validateSrc		: 'Por favor, digite o endereço do Hiperlink',
-		validateWidth	: '"Largura" tem que ser um número.',
-		validateHeight	: '"Altura" tem que ser um número',
-		validateHSpace	: '"HSpace" tem que ser um número',
-		validateVSpace	: '"VSpace" tem que ser um número.'
+		hSpace			: 'HSpace',
+		vSpace			: 'VSpace',
+		validateSrc		: 'Por favor, digite o endereço do link',
+		validateWidth	: 'A largura tem que ser um número.',
+		validateHeight	: 'A altura tem que ser um número',
+		validateHSpace	: 'O HSpace tem que ser um número',
+		validateVSpace	: 'O VSpace tem que ser um número.'
 	},
 
@@ -485,5 +485,5 @@
 	{
 		toolbar			: 'Verificar Ortografia',
-		title			: 'Corretor gramatical',
+		title			: 'Corretor Ortográfico',
 		notAvailable	: 'Desculpe, o serviço não está disponível no momento.',
 		errorLoading	: 'Erro carregando servidor de aplicação: %s.',
@@ -500,5 +500,5 @@
 		noChanges		: 'Verificação ortográfica encerrada: Não houve alterações',
 		oneChange		: 'Verificação ortográfica encerrada: Uma palavra foi alterada',
-		manyChanges		: 'Verificação ortográfica encerrada: %1 foram alteradas',
+		manyChanges		: 'Verificação ortográfica encerrada: %1 palavras foram alteradas',
 		ieSpellDownload	: 'A verificação ortográfica não foi instalada. Você gostaria de realizar o download agora?'
 	},
@@ -508,15 +508,15 @@
 		toolbar	: 'Emoticon',
 		title	: 'Inserir Emoticon',
-		options : 'Smiley Options' // MISSING
+		options : 'Opções de Emoticons'
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path', // MISSING
+		eleLabel : 'Caminho dos Elementos',
 		eleTitle : 'Elemento %1'
 	},
 
-	numberedlist	: 'Numeração',
-	bulletedlist	: 'Marcadores',
+	numberedlist	: 'Lista numerada',
+	bulletedlist	: 'Lista sem números',
 	indent			: 'Aumentar Recuo',
 	outdent			: 'Diminuir Recuo',
@@ -530,5 +530,5 @@
 	},
 
-	blockquote : 'Recuo',
+	blockquote : 'Citação',
 
 	clipboard :
@@ -537,7 +537,7 @@
 		cutError	: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).',
 		copyError	: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).',
-		pasteMsg	: 'Transfira o link usado no box usando o teclado com (<STRONG>Ctrl/Cmd+V</STRONG>) e <STRONG>OK</STRONG>.',
-		securityMsg	: 'As configurações de segurança do seu navegador não permitem que o editor acesse os dados da área de transferência diretamente. Por favor cole o conteúdo novamente nesta janela.',
-		pasteArea	: 'Paste Area' // MISSING
+		pasteMsg	: 'Transfira o link usado na caixa usando o teclado com (<STRONG>Ctrl/Cmd+V</STRONG>) e <STRONG>OK</STRONG>.',
+		securityMsg	: 'As configurações de segurança do seu navegador não permitem que o editor acesse os dados da área de transferência diretamente. Por favor cole o conteúdo manualmente nesta janela.',
+		pasteArea	: 'Área para Colar'
 	},
 
@@ -547,5 +547,5 @@
 		toolbar			: 'Colar do Word',
 		title			: 'Colar do Word',
-		error			: 'It was not possible to clean up the pasted data due to an internal error' // MISSING
+		error			: 'Não foi possível limpar os dados colados devido a um erro interno'
 	},
 
@@ -559,6 +559,6 @@
 	{
 		button			: 'Modelos de layout',
-		title			: 'Modelo de layout do conteúdo',
-		options : 'Template Options', // MISSING
+		title			: 'Modelo de layout de conteúdo',
+		options : 'Opções de Template',
 		insertOption	: 'Substituir o conteúdo atual',
 		selectPromptMsg	: 'Selecione um modelo de layout para ser aberto no editor<br>(o conteúdo atual será perdido):',
@@ -566,12 +566,12 @@
 	},
 
-	showBlocks : 'Mostrar blocos',
+	showBlocks : 'Mostrar blocos de código',
 
 	stylesCombo :
 	{
 		label		: 'Estilo',
-		panelTitle	: 'Formatting Styles', // MISSING
+		panelTitle	: 'Estilos de Formatação',
 		panelTitle1	: 'Estilos de bloco',
-		panelTitle2	: 'Estilos em texto corrido',
+		panelTitle2	: 'Estilos de texto corrido',
 		panelTitle3	: 'Estilos de objeto'
 	},
@@ -596,17 +596,17 @@
 	div :
 	{
-		title				: 'Create Div Container', // MISSING
-		toolbar				: 'Create Div Container', // MISSING
-		cssClassInputLabel	: 'Stylesheet Classes', // MISSING
-		styleSelectLabel	: 'Style', // MISSING
-		IdInputLabel		: 'Id', // MISSING
-		languageCodeInputLabel	: ' Language Code', // MISSING
-		inlineStyleInputLabel	: 'Inline Style', // MISSING
-		advisoryTitleInputLabel	: 'Advisory Title', // MISSING
-		langDirLabel		: 'Language Direction', // MISSING
-		langDirLTRLabel		: 'Left to Right (LTR)', // MISSING
-		langDirRTLLabel		: 'Right to Left (RTL)', // MISSING
-		edit				: 'Edit Div', // MISSING
-		remove				: 'Remove Div' // MISSING
+		title				: 'Criar Container de DIV',
+		toolbar				: 'Criar Container de DIV',
+		cssClassInputLabel	: 'Classes de CSS',
+		styleSelectLabel	: 'Estilo',
+		IdInputLabel		: 'Id',
+		languageCodeInputLabel	: 'Código de Idioma',
+		inlineStyleInputLabel	: 'Estilo Inline',
+		advisoryTitleInputLabel	: 'Título Consulta',
+		langDirLabel		: 'Direção da Escrita',
+		langDirLTRLabel		: 'Esquerda para Direita (LTR)',
+		langDirRTLLabel		: 'Direita para Esquerda (RTL)',
+		edit				: 'Editar Div',
+		remove				: 'Remover Div'
   	},
 
@@ -629,5 +629,5 @@
 		textColorTitle	: 'Cor do Texto',
 		bgColorTitle	: 'Cor do Plano de Fundo',
-		panelTitle		: 'Colors', // MISSING
+		panelTitle		: 'Cores',
 		auto			: 'Automático',
 		more			: 'Mais Cores...'
@@ -636,56 +636,56 @@
 	colors :
 	{
-		'000' : 'Black', // MISSING
-		'800000' : 'Maroon', // MISSING
-		'8B4513' : 'Saddle Brown', // MISSING
-		'2F4F4F' : 'Dark Slate Gray', // MISSING
-		'008080' : 'Teal', // MISSING
-		'000080' : 'Navy', // MISSING
-		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
-		'B22222' : 'Fire Brick', // MISSING
-		'A52A2A' : 'Brown', // MISSING
-		'DAA520' : 'Golden Rod', // MISSING
-		'006400' : 'Dark Green', // MISSING
-		'40E0D0' : 'Turquoise', // MISSING
-		'0000CD' : 'Medium Blue', // MISSING
-		'800080' : 'Purple', // MISSING
-		'808080' : 'Gray', // MISSING
-		'F00' : 'Red', // MISSING
-		'FF8C00' : 'Dark Orange', // MISSING
-		'FFD700' : 'Gold', // MISSING
-		'008000' : 'Green', // MISSING
-		'0FF' : 'Cyan', // MISSING
-		'00F' : 'Blue', // MISSING
-		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
-		'FFA07A' : 'Light Salmon', // MISSING
-		'FFA500' : 'Orange', // MISSING
-		'FFFF00' : 'Yellow', // MISSING
-		'00FF00' : 'Lime', // MISSING
-		'AFEEEE' : 'Pale Turquoise', // MISSING
-		'ADD8E6' : 'Light Blue', // MISSING
-		'DDA0DD' : 'Plum', // MISSING
-		'D3D3D3' : 'Light Grey', // MISSING
-		'FFF0F5' : 'Lavender Blush', // MISSING
-		'FAEBD7' : 'Antique White', // MISSING
-		'FFFFE0' : 'Light Yellow', // MISSING
-		'F0FFF0' : 'Honeydew', // MISSING
-		'F0FFFF' : 'Azure', // MISSING
-		'F0F8FF' : 'Alice Blue', // MISSING
-		'E6E6FA' : 'Lavender', // MISSING
-		'FFF' : 'White' // MISSING
+		'000' : 'Preto',
+		'800000' : 'Foquete',
+		'8B4513' : 'Marrom 1',
+		'2F4F4F' : 'Cinza 1',
+		'008080' : 'Cerceta',
+		'000080' : 'Azul Marinho',
+		'4B0082' : 'Índigo',
+		'696969' : 'Cinza 2',
+		'B22222' : 'Tijolo de Fogo',
+		'A52A2A' : 'Marrom 2',
+		'DAA520' : 'Vara Dourada',
+		'006400' : 'Verde Escuro',
+		'40E0D0' : 'Turquesa',
+		'0000CD' : 'Azul Médio',
+		'800080' : 'Roxo',
+		'808080' : 'Cinza 3',
+		'F00' : 'Vermelho',
+		'FF8C00' : 'Laranja Escuro',
+		'FFD700' : 'Dourado',
+		'008000' : 'Verde',
+		'0FF' : 'Ciano',
+		'00F' : 'Azul',
+		'EE82EE' : 'Violeta',
+		'A9A9A9' : 'Cinza Escuro',
+		'FFA07A' : 'Salmão Claro',
+		'FFA500' : 'Laranja',
+		'FFFF00' : 'Amarelo',
+		'00FF00' : 'Lima',
+		'AFEEEE' : 'Turquesa Pálido',
+		'ADD8E6' : 'Azul Claro',
+		'DDA0DD' : 'Ameixa',
+		'D3D3D3' : 'Cinza Claro',
+		'FFF0F5' : 'Lavanda 1',
+		'FAEBD7' : 'Branco Antiguidade',
+		'FFFFE0' : 'Amarelo Claro',
+		'F0FFF0' : 'Orvalho',
+		'F0FFFF' : 'Azure',
+		'F0F8FF' : 'Azul Alice',
+		'E6E6FA' : 'Lavanda 2',
+		'FFF' : 'Branco'
 	},
 
 	scayt :
 	{
-		title			: 'Correção gramatical durante a digitação',
-		opera_title		: 'Not supported by Opera', // MISSING
-		enable			: 'Habilitar SCAYT',
-		disable			: 'Desabilitar SCAYT',
-		about			: 'Sobre o SCAYT',
-		toggle			: 'Ativar/desativar SCAYT',
+		title			: 'Correção ortográfica durante a digitação',
+		opera_title		: 'Não suportado no Opera',
+		enable			: 'Habilitar correção ortográfica durante a digitação',
+		disable			: 'Desabilitar correção ortográfica durante a digitação',
+		about			: 'Sobre a correção ortográfica durante a digitação',
+		toggle			: 'Ativar/desativar correção ortográfica durante a digitação',
 		options			: 'Opções',
-		langs			: 'Línguas',
+		langs			: 'Idiomas',
 		moreSuggestions	: 'Mais sugestões',
 		ignore			: 'Ignorar',
@@ -695,18 +695,18 @@
 
 		optionsTab		: 'Opções',
-		allCaps			: 'Ignore All-Caps Words', // MISSING
-		ignoreDomainNames : 'Ignore Domain Names', // MISSING
-		mixedCase		: 'Ignore Words with Mixed Case', // MISSING
-		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
-
-		languagesTab	: 'Línguas',
+		allCaps			: 'Ignorar palavras maiúsculas',
+		ignoreDomainNames : 'Ignorar nomes de domínio',
+		mixedCase		: 'Ignorar palavras com maiúsculas e minúsculas misturadas',
+		mixedWithDigits	: 'Ignorar palavras com números',
+
+		languagesTab	: 'Idiomas',
 
 		dictionariesTab	: 'Dicionários',
-		dic_field_name	: 'Dictionary name', // MISSING
-		dic_create		: 'Create', // MISSING
-		dic_restore		: 'Restore', // MISSING
-		dic_delete		: 'Delete', // MISSING
-		dic_rename		: 'Rename', // MISSING
-		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type it\'s name and click the Restore button.', // MISSING
+		dic_field_name	: 'Nome do Dicionário',
+		dic_create		: 'Criar',
+		dic_restore		: 'Restaurar',
+		dic_delete		: 'Excluir',
+		dic_rename		: 'Renomear',
+		dic_info		: 'Inicialmente, o dicionário do usuário fica armazenado em um Cookie. Porém, Cookies tem tamanho limitado, portanto quand o dicionário do usuário atingir o tamanho limite poderá ser armazenado no nosso servidor. Para armazenar seu dicionário pessoal no nosso servidor deverá especificar um nome para ele. Se já tiver um dicionário armazenado por favor especifique o seu nome e clique em Restaurar.',
 
 		aboutTab		: 'Sobre'
@@ -716,11 +716,11 @@
 	{
 		title		: 'Sobre o CKEditor',
-		dlgTitle	: 'About CKEditor', // MISSING
-		moreInfo	: 'Para informações sobre a licença, por favor, visite o nosso site na Internet:',
-		copy		: 'Direito de reprodução &copy; $1. Todos os direitos reservados.'
+		dlgTitle	: 'Sobre o CKEditor',
+		moreInfo	: 'Para informações sobre a licença por favor visite o nosso site:',
+		copy		: 'Copyright &copy; $1. Todos os direitos reservados.'
 	},
 
 	maximize : 'Maximizar',
-	minimize : 'Minimize', // MISSING
+	minimize : 'Minimize',
 
 	fakeobjects :
@@ -736,12 +736,12 @@
 	colordialog :
 	{
-		title		: 'Select color', // MISSING
-		options	:	'Color Options', // MISSING
-		highlight	: 'Highlight', // MISSING
-		selected	: 'Selected Color', // MISSING
-		clear		: 'Clear' // MISSING
-	},
-
-	toolbarCollapse	: 'Collapse Toolbar', // MISSING
-	toolbarExpand	: 'Expand Toolbar' // MISSING
+		title		: 'Selecione uma cor',
+		options	:	'Opções de Cor',
+		highlight	: 'Grifar',
+		selected	: 'Cor Selecionada',
+		clear		: 'Limpar'
+	},
+
+	toolbarCollapse	: 'Diminuir Barra de Ferramentas',
+	toolbarExpand	: 'Aumentar Barra de Ferramentas'
 };
Index: /CKEditor/branches/versions/3.3.x/_source/lang/pt.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/pt.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/pt.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/ro.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/ro.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/ro.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/ru.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/ru.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/ru.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/sk.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/sk.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/sk.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/sl.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/sl.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/sl.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/sr-latn.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/sr-latn.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/sr-latn.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/sr.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/sr.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/sr.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/sv.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/sv.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/sv.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/th.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/th.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/th.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/tr.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/tr.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/tr.js	(revision 5805)
@@ -5,7 +5,6 @@
 
 /**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Turkish language.
- */
+* @fileOverview
+*/
 
 /**#@+
@@ -108,5 +107,5 @@
 
 		// Put the voice-only part of the label in the span.
-		unavailable		: '%1<span class="cke_accessibility">, unavailable</span>'
+		unavailable		: '%1<span class="cke_accessibility">, hazır değildir</span>'
 	},
 
@@ -193,22 +192,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		circle				: 'Circle', // MISSING
-		disc				: 'Disc', // MISSING
-		square				: 'Square', // MISSING
-		none				: 'None', // MISSING
-		notset				: '<not set>', // MISSING
-		armenian			: 'Armenian numbering', // MISSING
-		georgian			: 'Georgian numbering (an, ban, gan, etc.)', // MISSING
-		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
-		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
-		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
-		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
-		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
-		decimal				: 'Decimal (1, 2, 3, etc.)', // MISSING
-		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
+		numberedTitle		: 'Sayılandırılmış Liste Özellikleri',
+		bulletedTitle		: 'Simgeli Liste Özellikleri',
+		type				: 'Tipi',
+		start				: 'Başla',
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
+		circle				: 'Daire',
+		disc				: 'Disk',
+		square				: 'Kare',
+		none				: 'Yok',
+		notset				: '<ayarlanmamış>',
+		armenian			: 'Ermenice sayılandırma',
+		georgian			: 'Gürcüce numaralandırma (an, ban, gan, vs.)',
+		lowerRoman			: 'Küçük Roman (i, ii, iii, iv, v, vs.)',
+		upperRoman			: 'Büyük Roman (I, II, III, IV, V, vs.)',
+		lowerAlpha			: 'Küçük Alpha (a, b, c, d, e, vs.)',
+		upperAlpha			: 'Büyük Alpha (A, B, C, D, E, vs.)',
+		lowerGreek			: 'Küçük Greek (alpha, beta, gamma, vs.)',
+		decimal				: 'Ondalık (1, 2, 3, vs.)',
+		decimalLeadingZero	: 'Başı sıfırlı ondalık (01, 02, 03, vs.)'
 	},
 
@@ -475,5 +475,5 @@
 		vSpace			: 'Dikey Boşluk',
 		validateSrc		: 'Lütfen köprü URL\'sini yazın',
-		validateWidth	: 'Width must be a number.',
+		validateWidth	: 'Genişlik bir sayı olmalıdır.',
 		validateHeight	: 'Yükseklik sayı olmalıdır.',
 		validateHSpace	: 'HSpace sayı olmalıdır.',
@@ -681,5 +681,5 @@
 	{
 		title			: 'Girmiş olduğunuz kelime denetimi',
-		opera_title		: 'Not supported by Opera', // MISSING
+		opera_title		: 'Opera tarafından desteklenmemektedir',
 		enable			: 'SCAYT etkinleştir',
 		disable			: 'SCAYT pasifleştir',
@@ -695,18 +695,18 @@
 
 		optionsTab		: 'Seçenekler',
-		allCaps			: 'Ignore All-Caps Words', // MISSING
-		ignoreDomainNames : 'Ignore Domain Names', // MISSING
-		mixedCase		: 'Ignore Words with Mixed Case', // MISSING
-		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
+		allCaps			: 'Tüm büyük küçük kelimeleri yoksay',
+		ignoreDomainNames : 'Domain adlarını yoksay',
+		mixedCase		: 'Karışık büyüklük ile Sözcükler yoksay',
+		mixedWithDigits	: 'Sayılarla Kelimeler yoksay',
 
 		languagesTab	: 'Diller',
 
 		dictionariesTab	: 'Sözlükler',
-		dic_field_name	: 'Dictionary name', // MISSING
-		dic_create		: 'Create', // MISSING
-		dic_restore		: 'Restore', // MISSING
-		dic_delete		: 'Delete', // MISSING
-		dic_rename		: 'Rename', // MISSING
-		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type it\'s name and click the Restore button.', // MISSING
+		dic_field_name	: 'Sözlük adı',
+		dic_create		: 'Oluştur',
+		dic_restore		: 'Geri al',
+		dic_delete		: 'Sil',
+		dic_rename		: 'Yeniden adlandır',
+		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type it\'s name and click the Restore button.',
 
 		aboutTab		: 'Hakkında'
@@ -737,5 +737,5 @@
 	{
 		title		: 'Renk seç',
-		options	:	'Color Options', // MISSING
+		options	:	'Renk Seçenekleri',
 		highlight	: 'İşaretle',
 		selected	: 'Seçilmiş',
Index: /CKEditor/branches/versions/3.3.x/_source/lang/uk.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/uk.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/uk.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/vi.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/vi.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/vi.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Kiểu loại',
 		start				: 'Bắt đầu',
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Khuyên tròn',
 		disc				: 'Hình đĩa',
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/lang/zh-cn.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/zh-cn.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/zh-cn.js	(revision 5805)
@@ -32,9 +32,9 @@
 	 * of reading non-English words. So be careful while translating it.
 	 */
-	editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
+	editorTitle : '所见即所得编辑器, %1, 按 ALT+0 查看帮助。',
 
 	// ARIA descriptions.
-	toolbar	: 'Toolbar', // MISSING
-	editor	: 'Rich Text Editor', // MISSING
+	toolbar	: '工具栏',
+	editor	: '所见即所得编辑器',
 
 	// Toolbar buttons without dialogs.
@@ -68,5 +68,5 @@
 		protocol		: '协议',
 		upload			: '上传',
-		uploadSubmit	: '发送到服务器上',
+		uploadSubmit	: '上传到服务器上',
 		image			: '图象',
 		flash			: 'Flash',
@@ -93,6 +93,6 @@
 		ok				: '确定',
 		cancel			: '取消',
-		close			: 'Close', // MISSING
-		preview			: 'Preview', // MISSING
+		close			: '关闭',
+		preview			: '预览',
 		generalTab		: '常规',
 		advancedTab		: '高级',
@@ -100,10 +100,10 @@
 		confirmNewPage	: '当前文档内容未保存,是否确认新建文档？',
 		confirmCancel	: '部分选项尚未保存，是否确认关闭对话框？',
-		options			: 'Options', // MISSING
-		target			: 'Target', // MISSING
-		targetNew		: 'New Window (_blank)', // MISSING
-		targetTop		: 'Topmost Window (_top)', // MISSING
-		targetSelf		: 'Same Window (_self)', // MISSING
-		targetParent	: 'Parent Window (_parent)', // MISSING
+		options			: '选项',
+		target			: '目标窗口',
+		targetNew		: '新窗口 (_blank)',
+		targetTop		: '整页 (_top)',
+		targetSelf		: '本窗口 (_self)',
+		targetParent	: '父窗口 (_parent)',
 
 		// Put the voice-only part of the label in the span.
@@ -113,5 +113,5 @@
 	contextmenu :
 	{
-		options : 'Context Menu Options' // MISSING
+		options : '快捷菜单选项'
 	},
 
@@ -121,5 +121,5 @@
 		toolbar		: '插入特殊符号',
 		title		: '选择特殊符号',
-		options : 'Special Character Options' // MISSING
+		options : '特殊符号选项'
 	},
 
@@ -136,5 +136,5 @@
 		advanced	: '高级',
 		type		: '超链接类型',
-		toUrl		: 'URL', // MISSING
+		toUrl		: '地址',
 		toAnchor	: '页内锚点链接',
 		toEmail		: '电子邮件',
@@ -162,5 +162,5 @@
 		acccessKey		: '访问键',
 		name			: '名称',
-		langCode		: '语言方向',
+		langCode		: '语言代码',
 		tabIndex		: 'Tab 键次序',
 		advisoryTitle	: '标题',
@@ -193,22 +193,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		circle				: 'Circle', // MISSING
-		disc				: 'Disc', // MISSING
-		square				: 'Square', // MISSING
-		none				: 'None', // MISSING
-		notset				: '<not set>', // MISSING
-		armenian			: 'Armenian numbering', // MISSING
-		georgian			: 'Georgian numbering (an, ban, gan, etc.)', // MISSING
-		lowerRoman			: 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
-		upperRoman			: 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
-		lowerAlpha			: 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
-		upperAlpha			: 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
-		lowerGreek			: 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
-		decimal				: 'Decimal (1, 2, 3, etc.)', // MISSING
-		decimalLeadingZero	: 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
+		numberedTitle		: '编号列表属性',
+		bulletedTitle		: '项目列表属性',
+		type				: '标记类型',
+		start				: '开始序号',
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
+		circle				: '空心圆',
+		disc				: '实心圆',
+		square				: '实心方块',
+		none				: '无标记',
+		notset				: '<没有设置>',
+		armenian			: '传统的亚美尼亚编号方式',
+		georgian			: '传统的乔治亚编号方式(an, ban, gan, 等)',
+		lowerRoman			: '小写罗马数字(i, ii, iii, iv, v, 等)',
+		upperRoman			: '大写罗马数字(I, II, III, IV, V, 等)',
+		lowerAlpha			: '小写英文字母(a, b, c, d, e, 等)',
+		upperAlpha			: '大写英文字母(A, B, C, D, E, 等)',
+		lowerGreek			: '小写希腊字母(alpha, beta, gamma, 等)',
+		decimal				: '数字 (1, 2, 3, 等)',
+		decimalLeadingZero	: '0开头的数字标记(01, 02, 03, 等)'
 	},
 
@@ -246,5 +247,5 @@
 		widthPx		: '像素',
 		widthPc		: '百分比',
-		widthUnit	: 'width unit', // MISSING
+		widthUnit	: '宽度单位',
 		height		: '高度',
 		cellSpace	: '间距',
@@ -278,12 +279,12 @@
 			title			: '单元格属性',
 			cellType		: '单元格类型',
-			rowSpan			: '行跨度',
-			colSpan			: '列跨度',
+			rowSpan			: '纵跨行数',
+			colSpan			: '横跨列数',
 			wordWrap		: '自动换行',
 			hAlign			: '水平对齐',
 			vAlign			: '垂直对齐',
-			alignTop		: '顶对齐',
-			alignMiddle		: '中对齐',
-			alignBottom		: '底对齐',
+			alignTop		: '顶端对齐',
+			alignMiddle		: '中间对齐',
+			alignBottom		: '底部对齐',
 			alignBaseline	: '基线对齐',
 			bgColor			: '背景颜色',
@@ -297,5 +298,5 @@
 			invalidRowSpan	: '行跨度必须为整数格式',
 			invalidColSpan	: '列跨度必须为整数格式',
-			chooseColor		: 'Choose' // MISSING
+			chooseColor		: '选择'
 		},
 
@@ -351,17 +352,17 @@
 	{
 		title		: '菜单/列表属性',
-		selectInfo	: '信息',
-		opAvail		: '列表值',
+		selectInfo	: '选择信息',
+		opAvail		: '可选项',
 		value		: '值',
 		size		: '高度',
 		lines		: '行',
 		chkMulti	: '允许多选',
-		opText		: '标签',
-		opValue		: '选定',
-		btnAdd		: '新增',
+		opText		: '选项文本',
+		opValue		: '选项值',
+		btnAdd		: '添加',
 		btnModify	: '修改',
 		btnUp		: '上移',
 		btnDown		: '下移',
-		btnSetValue : '设为初始化时选定',
+		btnSetValue : '设为初始选定',
 		btnDelete	: '删除'
 	},
@@ -403,5 +404,5 @@
 		menu		: '图象属性',
 		infoTab		: '图象',
-		btnUpload	: '发送到服务器上',
+		btnUpload	: '上传到服务器上',
 		upload		: '上传',
 		alt			: '替换文本',
@@ -409,6 +410,6 @@
 		height		: '高度',
 		lockRatio	: '锁定比例',
-		unlockRatio	: 'Unlock Ratio', // MISSING
-		resetSize	: '恢复尺寸',
+		unlockRatio	: '不锁定比例',
+		resetSize	: '原始尺寸',
 		border		: '边框大小',
 		hSpace		: '水平间距',
@@ -421,10 +422,10 @@
 		button2Img	: '确定要把当前按钮改变为图像吗?',
 		img2Button	: '确定要把当前图像改变为按钮吗?',
-		urlMissing	: 'Image source URL is missing.', // MISSING
-		validateWidth	: 'Width must be a whole number.', // MISSING
-		validateHeight	: 'Height must be a whole number.', // MISSING
-		validateBorder	: 'Border must be a whole number.', // MISSING
-		validateHSpace	: 'HSpace must be a whole number.', // MISSING
-		validateVSpace	: 'VSpace must be a whole number.' // MISSING
+		urlMissing	: '缺少图像源文件地址',
+		validateWidth	: '图像宽度必须为整数格式',
+		validateHeight	: '图像高度必须为整数格式',
+		validateBorder	: '边框大小必须为整数格式',
+		validateHSpace	: '水平间距必须为整数格式',
+		validateVSpace	: '垂直间距必须为整数格式'
 	},
 
@@ -449,8 +450,8 @@
 		align			: '对齐方式',
 		alignLeft		: '左对齐',
-		alignAbsBottom	: '绝对底边',
+		alignAbsBottom	: '绝对底部',
 		alignAbsMiddle	: '绝对居中',
 		alignBaseline	: '基线',
-		alignBottom		: '底边',
+		alignBottom		: '底部',
 		alignMiddle		: '居中',
 		alignRight		: '右对齐',
@@ -460,7 +461,7 @@
 		qualityBest		: '最好',
 		qualityHigh		: '高',
-		qualityAutoHigh	: '高（自动）',
-		qualityMedium	: '中（自动）',
-		qualityAutoLow	: '低（自动）',
+		qualityAutoHigh	: '高(自动)',
+		qualityMedium	: '中(自动)',
+		qualityAutoLow	: '低(自动)',
 		qualityLow		: '低',
 		windowModeWindow: '窗体',
@@ -468,5 +469,5 @@
 		windowModeTransparent : '透明',
 		windowMode		: '窗体模式',
-		flashvars		: 'Flash变量',
+		flashvars		: 'Flash 变量',
 		bgcolor			: '背景颜色',
 		width			: '宽度',
@@ -474,5 +475,5 @@
 		hSpace			: '水平间距',
 		vSpace			: '垂直间距',
-		validateSrc		: '请输入超链接地址',
+		validateSrc		: '请输入源文件地址',
 		validateWidth	: '宽度必须为数字格式',
 		validateHeight	: '高度必须为数字格式',
@@ -486,6 +487,6 @@
 		toolbar			: '拼写检查',
 		title			: '拼写检查',
-		notAvailable	: '抱歉，服务目前暂不可用',
-		errorLoading	: '无法联系该应用的主机: %s.',
+		notAvailable	: '抱歉, 服务目前暂不可用',
+		errorLoading	: '加载应该服务主机时出错: %s.',
 		notInDic		: '没有在字典里',
 		changeTo		: '更改为',
@@ -497,9 +498,9 @@
 		noSuggestions	: '- 没有建议 -',
 		progress		: '正在进行拼写检查...',
-		noMispell		: '拼写检查完成：没有发现拼写错误',
-		noChanges		: '拼写检查完成：没有更改任何单词',
-		oneChange		: '拼写检查完成：更改了一个单词',
-		manyChanges		: '拼写检查完成：更改了 %1 个单词',
-		ieSpellDownload	: '拼写检查插件还没安装，你是否想现在就下载？'
+		noMispell		: '拼写检查完成: 没有发现拼写错误',
+		noChanges		: '拼写检查完成: 没有更改任何单词',
+		oneChange		: '拼写检查完成: 更改了一个单词',
+		manyChanges		: '拼写检查完成: 更改了 %1 个单词',
+		ieSpellDownload	: '拼写检查插件还没安装, 你是否想现在就下载?'
 	},
 
@@ -508,10 +509,10 @@
 		toolbar	: '表情符',
 		title	: '插入表情图标',
-		options : 'Smiley Options' // MISSING
+		options : '表情图标选项'
 	},
 
 	elementsPath :
 	{
-		eleLabel : 'Elements path', // MISSING
+		eleLabel : '元素路径',
 		eleTitle : '%1 元素'
 	},
@@ -525,5 +526,5 @@
 	{
 		left	: '左对齐',
-		center	: '居中对齐',
+		center	: '居中',
 		right	: '右对齐',
 		block	: '两端对齐'
@@ -535,17 +536,17 @@
 	{
 		title		: '粘贴',
-		cutError	: '您的浏览器安全设置不允许编辑器自动执行剪切操作，请使用键盘快捷键(Ctrl/Cmd+X)来完成',
-		copyError	: '您的浏览器安全设置不允许编辑器自动执行复制操作，请使用键盘快捷键(Ctrl/Cmd+C)来完成',
+		cutError	: '您的浏览器安全设置不允许编辑器自动执行剪切操作, 请使用键盘快捷键(Ctrl/Cmd+X)来完成',
+		copyError	: '您的浏览器安全设置不允许编辑器自动执行复制操作, 请使用键盘快捷键(Ctrl/Cmd+C)来完成',
 		pasteMsg	: '请使用键盘快捷键(<STRONG>Ctrl/Cmd+V</STRONG>)把内容粘贴到下面的方框里，再按 <STRONG>确定</STRONG>',
-		securityMsg	: '因为你的浏览器的安全设置原因，本编辑器不能直接访问你的剪贴板内容，你需要在本窗口重新粘贴一次',
-		pasteArea	: 'Paste Area' // MISSING
+		securityMsg	: '因为你的浏览器的安全设置原因, 本编辑器不能直接访问你的剪贴板内容, 你需要在本窗口重新粘贴一次',
+		pasteArea	: '粘贴区域'
 	},
 
 	pastefromword :
 	{
-		confirmCleanup	: '您要粘贴的内容好像是来自 MS Word，是否要清除 MS Word 格式后再粘贴？',
+		confirmCleanup	: '您要粘贴的内容好像是来自 MS Word, 是否要清除 MS Word 格式后再粘贴?',
 		toolbar			: '从 MS Word 粘贴',
 		title			: '从 MS Word 粘贴',
-		error			: 'It was not possible to clean up the pasted data due to an internal error' // MISSING
+		error			: '由于内部错误无法清理要粘贴的数据'
 	},
 
@@ -560,5 +561,5 @@
 		button			: '模板',
 		title			: '内容模板',
-		options : 'Template Options', // MISSING
+		options : '模板选项',
 		insertOption	: '替换当前内容',
 		selectPromptMsg	: '请选择编辑器内容模板:',
@@ -571,5 +572,5 @@
 	{
 		label		: '样式',
-		panelTitle	: 'Formatting Styles', // MISSING
+		panelTitle	: '样式',
 		panelTitle1	: '块级元素样式',
 		panelTitle2	: '内联元素样式',
@@ -596,17 +597,17 @@
 	div :
 	{
-		title				: 'Create Div Container', // MISSING
-		toolbar				: 'Create Div Container', // MISSING
-		cssClassInputLabel	: 'Stylesheet Classes', // MISSING
-		styleSelectLabel	: 'Style', // MISSING
-		IdInputLabel		: 'Id', // MISSING
-		languageCodeInputLabel	: ' Language Code', // MISSING
-		inlineStyleInputLabel	: 'Inline Style', // MISSING
-		advisoryTitleInputLabel	: 'Advisory Title', // MISSING
-		langDirLabel		: 'Language Direction', // MISSING
-		langDirLTRLabel		: 'Left to Right (LTR)', // MISSING
-		langDirRTLLabel		: 'Right to Left (RTL)', // MISSING
-		edit				: 'Edit Div', // MISSING
-		remove				: 'Remove Div' // MISSING
+		title				: '创建 DIV 容器',
+		toolbar				: '创建 DIV 容器',
+		cssClassInputLabel	: '样式类名称',
+		styleSelectLabel	: '样式',
+		IdInputLabel		: 'ID',
+		languageCodeInputLabel	: '语言代码',
+		inlineStyleInputLabel	: '行内样式',
+		advisoryTitleInputLabel	: '标题',
+		langDirLabel		: '语言方向',
+		langDirLTRLabel		: '从左到右 (LTR)',
+		langDirRTLLabel		: '从右到左 (RTL)',
+		edit				: '编辑 DIV',
+		remove				: '移除 DIV'
   	},
 
@@ -629,5 +630,5 @@
 		textColorTitle	: '文本颜色',
 		bgColorTitle	: '背景颜色',
-		panelTitle		: 'Colors', // MISSING
+		panelTitle		: '颜色',
 		auto			: '自动',
 		more			: '其它颜色...'
@@ -636,44 +637,44 @@
 	colors :
 	{
-		'000' : 'Black', // MISSING
-		'800000' : 'Maroon', // MISSING
-		'8B4513' : 'Saddle Brown', // MISSING
-		'2F4F4F' : 'Dark Slate Gray', // MISSING
-		'008080' : 'Teal', // MISSING
-		'000080' : 'Navy', // MISSING
-		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
-		'B22222' : 'Fire Brick', // MISSING
-		'A52A2A' : 'Brown', // MISSING
-		'DAA520' : 'Golden Rod', // MISSING
-		'006400' : 'Dark Green', // MISSING
-		'40E0D0' : 'Turquoise', // MISSING
-		'0000CD' : 'Medium Blue', // MISSING
-		'800080' : 'Purple', // MISSING
-		'808080' : 'Gray', // MISSING
-		'F00' : 'Red', // MISSING
-		'FF8C00' : 'Dark Orange', // MISSING
-		'FFD700' : 'Gold', // MISSING
-		'008000' : 'Green', // MISSING
-		'0FF' : 'Cyan', // MISSING
-		'00F' : 'Blue', // MISSING
-		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
-		'FFA07A' : 'Light Salmon', // MISSING
-		'FFA500' : 'Orange', // MISSING
-		'FFFF00' : 'Yellow', // MISSING
-		'00FF00' : 'Lime', // MISSING
-		'AFEEEE' : 'Pale Turquoise', // MISSING
-		'ADD8E6' : 'Light Blue', // MISSING
-		'DDA0DD' : 'Plum', // MISSING
-		'D3D3D3' : 'Light Grey', // MISSING
-		'FFF0F5' : 'Lavender Blush', // MISSING
-		'FAEBD7' : 'Antique White', // MISSING
-		'FFFFE0' : 'Light Yellow', // MISSING
-		'F0FFF0' : 'Honeydew', // MISSING
-		'F0FFFF' : 'Azure', // MISSING
-		'F0F8FF' : 'Alice Blue', // MISSING
-		'E6E6FA' : 'Lavender', // MISSING
-		'FFF' : 'White' // MISSING
+		'000' : '黑',
+		'800000' : '褐红',
+		'8B4513' : '深褐',
+		'2F4F4F' : '墨绿',
+		'008080' : '绿松石',
+		'000080' : '海军蓝',
+		'4B0082' : '靛蓝',
+		'696969' : '暗灰',
+		'B22222' : '砖红',
+		'A52A2A' : '褐',
+		'DAA520' : '金黄',
+		'006400' : '深绿',
+		'40E0D0' : '蓝绿',
+		'0000CD' : '中蓝',
+		'800080' : '紫',
+		'808080' : '灰',
+		'F00' : '红',
+		'FF8C00' : '深橙',
+		'FFD700' : '金',
+		'008000' : '绿',
+		'0FF' : '青',
+		'00F' : '蓝',
+		'EE82EE' : '紫罗兰',
+		'A9A9A9' : '深灰',
+		'FFA07A' : '亮橙',
+		'FFA500' : '橙',
+		'FFFF00' : '黄',
+		'00FF00' : '水绿',
+		'AFEEEE' : '粉蓝',
+		'ADD8E6' : '亮蓝',
+		'DDA0DD' : '梅红',
+		'D3D3D3' : '淡灰',
+		'FFF0F5' : '淡紫红',
+		'FAEBD7' : '古董白',
+		'FFFFE0' : '淡黄',
+		'F0FFF0' : '蜜白',
+		'F0FFFF' : '天蓝',
+		'F0F8FF' : '淡蓝',
+		'E6E6FA' : '淡紫',
+		'FFF' : '白'
 	},
 
@@ -681,5 +682,5 @@
 	{
 		title			: '即时拼写检查',
-		opera_title		: 'Not supported by Opera', // MISSING
+		opera_title		: '不支持 Opera 浏览器',
 		enable			: '启用即时拼写检查',
 		disable			: '禁用即时拼写检查',
@@ -695,17 +696,17 @@
 
 		optionsTab		: '选项',
-		allCaps			: 'Ignore All-Caps Words', // MISSING
-		ignoreDomainNames : 'Ignore Domain Names', // MISSING
-		mixedCase		: 'Ignore Words with Mixed Case', // MISSING
-		mixedWithDigits	: 'Ignore Words with Numbers', // MISSING
+		allCaps			: '忽略所有大写单词',
+		ignoreDomainNames : '忽略域名',
+		mixedCase		: '忽略大小写混合的单词',
+		mixedWithDigits	: '忽略带数字的单词',
 
 		languagesTab	: '语言',
 
 		dictionariesTab	: '字典',
-		dic_field_name	: 'Dictionary name', // MISSING
-		dic_create		: 'Create', // MISSING
-		dic_restore		: 'Restore', // MISSING
-		dic_delete		: 'Delete', // MISSING
-		dic_rename		: 'Rename', // MISSING
+		dic_field_name	: '字典名称',
+		dic_create		: '创建',
+		dic_restore		: '还原',
+		dic_delete		: '删除',
+		dic_rename		: '重命名',
 		dic_info		: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type it\'s name and click the Restore button.', // MISSING
 
@@ -718,9 +719,9 @@
 		dlgTitle	: '关于CKEditor',
 		moreInfo	: '访问我们的网站以获取更多关于协议的信息',
-		copy		: 'Copyright &copy; $1. All rights reserved.'
+		copy		: '版权所有 &copy; $1.'
 	},
 
 	maximize : '全屏',
-	minimize : 'Minimize', // MISSING
+	minimize : '最小化',
 
 	fakeobjects :
@@ -736,12 +737,12 @@
 	colordialog :
 	{
-		title		: 'Select color', // MISSING
-		options	:	'Color Options', // MISSING
-		highlight	: 'Highlight', // MISSING
-		selected	: 'Selected Color', // MISSING
-		clear		: 'Clear' // MISSING
-	},
-
-	toolbarCollapse	: 'Collapse Toolbar', // MISSING
-	toolbarExpand	: 'Expand Toolbar' // MISSING
+		title		: '选择颜色',
+		options	:	'颜色选项',
+		highlight	: '高亮',
+		selected	: '选择颜色',
+		clear		: '清除'
+	},
+
+	toolbarCollapse	: '折叠工具栏',
+	toolbarExpand	: '展开工具栏'
 };
Index: /CKEditor/branches/versions/3.3.x/_source/lang/zh.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/lang/zh.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/lang/zh.js	(revision 5805)
@@ -197,4 +197,5 @@
 		type				: 'Type', // MISSING
 		start				: 'Start', // MISSING
+		validateStartNumber				:'List start number must be a whole number.', // MISSING
 		circle				: 'Circle', // MISSING
 		disc				: 'Disc', // MISSING
@@ -643,5 +644,5 @@
 		'000080' : 'Navy', // MISSING
 		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'696969' : 'Dark Gray', // MISSING
 		'B22222' : 'Fire Brick', // MISSING
 		'A52A2A' : 'Brown', // MISSING
@@ -659,5 +660,5 @@
 		'00F' : 'Blue', // MISSING
 		'EE82EE' : 'Violet', // MISSING
-		'A9A9A9' : 'Dark Gray', // MISSING
+		'A9A9A9' : 'Dim Gray', // MISSING
 		'FFA07A' : 'Light Salmon', // MISSING
 		'FFA500' : 'Orange', // MISSING
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/basicstyles/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/basicstyles/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/basicstyles/plugin.js	(revision 5805)
@@ -59,5 +59,5 @@
  * @default { element : 'em', overrides : 'i' }
  * @example
- * config.coreStyles_bold = { element : 'i', overrides : 'em' };
+ * config.coreStyles_italic = { element : 'i', overrides : 'em' };
  * @example
  * CKEDITOR.config.coreStyles_italic = { element : 'span', attributes : {'class': 'Italic'} };
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/button/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/button/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/button/plugin.js	(revision 5805)
@@ -135,5 +135,5 @@
 			'<a id="', id, '"' +
 				' class="', classes, '"',
-				env.gecko && env.version >= 10900 && !env.hc  ? '' : '" href="javascript:void(\''+ ( this.title || '' ).replace( "'"+ '' )+ '\')"',
+				env.gecko && env.version >= 10900 && !env.hc  ? '' : '" href="javascript:void(\''+ ( this.title || '' ).replace( "'", '' )+ '\')"',
 				' title="', this.title, '"' +
 				' tabindex="-1"' +
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/dialogs/paste.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/dialogs/paste.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/clipboard/dialogs/paste.js	(revision 5805)
@@ -77,4 +77,5 @@
 			var iframe = CKEDITOR.dom.element.createFromHtml(
 						'<iframe' +
+						' class="cke_pasteframe"' +
 						' frameborder="0" ' +
 						' allowTransparency="true"' +
@@ -104,11 +105,4 @@
 			}, this );
 
-			iframe.setStyles(
-				{
-					width : '346px',
-					height : '130px',
-					'background-color' : 'white',
-					border : '1px solid black'
-				} );
 			iframe.setCustomData( 'dialog', this );
 
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/colorbutton/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/colorbutton/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/colorbutton/plugin.js	(revision 5805)
@@ -41,10 +41,13 @@
 						block.element.addClass( 'cke_colorblock' );
 						block.element.setHtml( renderColors( panel, type ) );
+						// The block should not have scrollbars (#5933, #6056)
+						block.element.getDocument().getBody().setStyle( 'overflow', 'hidden' );
 
 						var keys = block.keys;
-						keys[ 39 ]	= 'next';					// ARROW-RIGHT
+						var rtl = editor.lang.dir == 'rtl';
+						keys[ rtl ? 37 : 39 ]	= 'next';					// ARROW-RIGHT
 						keys[ 40 ]	= 'next';					// ARROW-DOWN
 						keys[ 9 ]	= 'next';					// TAB
-						keys[ 37 ]	= 'prev';					// ARROW-LEFT
+						keys[ rtl ? 39 : 37 ]	= 'prev';					// ARROW-LEFT
 						keys[ 38 ]	= 'prev';					// ARROW-UP
 						keys[ CKEDITOR.SHIFT + 9 ]	= 'prev';	// SHIFT + TAB
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/colordialog/dialogs/colordialog.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/colordialog/dialogs/colordialog.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/colordialog/dialogs/colordialog.js	(revision 5805)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/dialog/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/dialog/plugin.js	(revision 5805)
@@ -169,4 +169,7 @@
 			this.on( 'ok', function( evt )
 				{
+					// Dialog confirm might probably introduce content changes (#5415).
+					editor.fire( 'saveSnapshot' );
+					setTimeout( function () { editor.fire( 'saveSnapshot' ); }, 0 );
 					if ( definition.onOk.call( this, evt ) === false )
 						evt.data.hide = false;
@@ -405,5 +408,5 @@
 
 				if ( editor.config.dialog_startupFocusTab
-					&& me._.tabIdList.length > 1 )
+					&& me._.pageCount > 1 )
 				{
 					me._.tabBarMode = true;
@@ -939,4 +942,11 @@
 		selectPage : function( id )
 		{
+			if ( this._.currentTabId == id )
+				return;
+
+			// Returning true means that the event has been canceled
+			if ( this.fire( 'selectPage', { page : id, currentPage : this._.currentTabId } ) === true )
+				return;
+
 			// Hide the non-selected tabs and pages.
 			for ( var i in this._.tabs )
@@ -2949,2 +2959,10 @@
  *		dialog.
  */
+
+/**
+ * Fired when a tab is going to be selected in a dialog
+ * @name dialog#selectPage
+ * @event
+ * @param String page The id of the page that it's gonna be selected.
+ * @param String currentPage The id of the current page.
+ */
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/dialogui/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/dialogui/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/dialogui/plugin.js	(revision 5805)
@@ -153,7 +153,8 @@
 				var innerHTML = function()
 				{
-					var html = [];
+					var html = [],
+						requiredClass = elementDefinition.required ? ' cke_required' : '' ;
 					if ( elementDefinition.labelLayout != 'horizontal' )
-						html.push( '<label class="cke_dialog_ui_labeled_label" ',
+						html.push( '<label class="cke_dialog_ui_labeled_label' + requiredClass + '" ',
 								' id="'+  _.labelId + '"',
 								' for="' + _.inputId + '"',
@@ -174,5 +175,5 @@
 								{
 									type : 'html',
-									html : '<label class="cke_dialog_ui_labeled_label"' +
+									html : '<label class="cke_dialog_ui_labeled_label' + requiredClass + '"' +
 										' id="' + _.labelId + '"' +
 										' for="' + _.inputId + '"' +
@@ -237,4 +238,7 @@
 					attributes.size = elementDefinition.size;
 
+				if ( elementDefinition.controlStyle )
+					attributes.style = elementDefinition.controlStyle;
+
 				// If user presses Enter in a text box, it implies clicking OK for the dialog.
 				var me = this, keyPressedOnMe = false;
@@ -376,4 +380,8 @@
 					if ( elementDefinition[ 'default' ] )
 						attributes.checked = 'checked';
+
+					if (typeof myDefinition.controlStyle != 'undefined')
+						myDefinition.style = myDefinition.controlStyle;
+
 					_.checkbox = new CKEDITOR.ui.dialog.uiElement( dialog, myDefinition, html, 'input', null, attributes );
 					html.push( ' <label id="', labelId, '" for="', attributes.id, '">',
@@ -454,4 +462,8 @@
 						cleanInnerDefinition( inputDefinition );
 						cleanInnerDefinition( labelDefinition );
+
+						if (typeof inputDefinition.controlStyle != 'undefined')
+							inputDefinition.style = inputDefinition.controlStyle;
+
 						children.push( new CKEDITOR.ui.dialog.uiElement( dialog, inputDefinition, inputHtml, 'input', null, inputAttributes ) );
 						inputHtml.push( ' ' );
@@ -611,4 +623,7 @@
 					}
 
+					if (typeof myDefinition.controlStyle != 'undefined')
+						myDefinition.style = myDefinition.controlStyle;
+
 					_.select = new CKEDITOR.ui.dialog.uiElement( dialog, myDefinition, html, 'select', null, attributes, innerHTML.join( '' ) );
 					return html.join( '' );
@@ -1324,7 +1339,38 @@
 				 * @example
 				 */
-				getAction : function( action )
+				getAction : function()
 				{
 					return this.getInputElement().getParent().$.action;
+				},
+
+				/**
+				 * The events must be applied on the inner input element, and
+				 * that must be done when the iframe & form has been loaded
+				 */
+				registerEvents : function( definition )
+				{
+					var regex = /^on([A-Z]\w+)/,
+						match;
+
+					var registerDomEvent = function( uiElement, dialog, eventName, func )
+					{
+						uiElement.on( 'formLoaded', function()
+						{
+							uiElement.getInputElement().on( eventName, func, uiElement );
+						});
+					};
+
+					for ( var i in definition )
+					{
+						if ( !( match = i.match( regex ) ) )
+							continue;
+
+						if ( this.eventProcessors[i] )
+							this.eventProcessors[i].call( this, this._.dialog, definition[i] );
+						else
+							registerDomEvent( this, this._.dialog, match[1].toLowerCase(), definition[i] );
+					}
+
+					return this;
 				},
 
@@ -1340,5 +1386,34 @@
 						frameDocument = frameElement.getFrameDocument(),
 						elementDefinition = this._.definition,
-						buttons = this._.buttons;
+						buttons = this._.buttons,
+						callNumber = this.formLoadedNumber,
+						unloadNumber = this.formUnloadNumber,
+						langDir = this._.dialog._.editor.lang.dir,
+						langCode = this._.dialog._.editor.langCode;
+
+					// The callback function for the iframe, but we must call tools.addFunction only once
+					// so we store the function number in this.formLoadedNumber
+					if (!callNumber)
+					{
+						callNumber = this.formLoadedNumber = CKEDITOR.tools.addFunction(
+							function()
+							{
+								// Now we can apply the events to the input type=file
+								this.fire( 'formLoaded' ) ;
+							}, this ) ;
+
+						// Remove listeners attached to the content of the iframe (the file input)
+						unloadNumber = this.formUnloadNumber = CKEDITOR.tools.addFunction(
+							function()
+							{
+								this.getInputElement().clearCustomData();
+							}, this ) ;
+
+						this.getDialog()._.editor.on( 'destroy', function()
+								{
+									CKEDITOR.tools.removeFunction( callNumber );
+									CKEDITOR.tools.removeFunction( unloadNumber );
+								} );
+					}
 
 					function generateFormField()
@@ -1354,6 +1429,6 @@
 							size = elementDefinition.size - ( CKEDITOR.env.ie  ? 7 : 0 );	// "Browse" button is bigger in IE.
 
-						frameDocument.$.write( [ '<html><head><title></title></head><body style="margin: 0; overflow: hidden; background: transparent;">',
-								'<form enctype="multipart/form-data" method="POST" action="',
+						frameDocument.$.write( [ '<html dir="' + langDir + '" lang="' + langCode + '"><head><title></title></head><body style="margin: 0; overflow: hidden; background: transparent;">',
+								'<form enctype="multipart/form-data" method="POST" dir="' + langDir + '" lang="' + langCode + '" action="',
 								CKEDITOR.tools.htmlEncode( elementDefinition.action ),
 								'">',
@@ -1364,5 +1439,7 @@
 								'" />',
 								'</form>',
-								'</body></html>' ].join( '' ) );
+								'</body></html>',
+								'<script>window.parent.CKEDITOR.tools.callFunction(' + callNumber + ');',
+								'window.onbeforeunload = function() {window.parent.CKEDITOR.tools.callFunction(' + unloadNumber + ')}</script>' ].join( '' ) );
 
 						frameDocument.$.close();
@@ -1381,8 +1458,16 @@
 				getValue : function()
 				{
-					// The file path returned from the input tag is incomplete anyway, so it's
-					// safe to ignore it and prevent the confirmation dialog from appearing.
-					// (Part of #3465)
-					return '';
+					return this.getInputElement().$.value;
+				},
+
+				/***
+				 * The default value of input type="file" is an empty string, but during initialization
+				 * of this UI element, the iframe still isn't ready so it can't be read from that object
+				 * Setting it manually prevents later issues about the current value ("") being different
+				 * of the initial value (undefined as it asked for .value of a div)
+				 */
+				setInitValue : function()
+				{
+					this._.initValue = '';
 				},
 
@@ -1393,5 +1478,25 @@
 				 * @example
 				 */
-				eventProcessors : commonEventProcessors,
+				eventProcessors :
+				{
+					onChange : function( dialog, func )
+					{
+						// If this method is called several times (I'm not sure about how this can happen but the default
+						// onChange processor includes this protection)
+						// In order to reapply to the new element, the property is deleted at the beggining of the registerEvents method
+						if ( !this._.domOnChangeRegistered )
+						{
+							// By listening for the formLoaded event, this handler will get reapplied when a new
+							// form is created
+							this.on( 'formLoaded', function()
+							{
+								this.getInputElement().on( 'change', function(){ this.fire( 'change', { value : this.getValue() } ); }, this );
+							}, this );
+							this._.domOnChangeRegistered = true;
+						}
+
+						this.on( 'change', func );
+					}
+				},
 
 				keyboardFocusable : true
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/div/dialogs/div.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/div/dialogs/div.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/div/dialogs/div.js	(revision 5805)
@@ -485,5 +485,4 @@
 			onOk : function()
 			{
-				editor.fire( 'saveSnapshot' );
 				if ( command == 'editdiv' )
 					containers = [ this._element ];
@@ -500,5 +499,4 @@
 					!containers[ i ].getAttribute( 'style' ) && containers[ i ].removeAttribute( 'style' );
 				}
-				editor.fire( 'saveSnapshot' );
 
 				this.hide();
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/domiterator/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/domiterator/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/domiterator/plugin.js	(revision 5805)
@@ -52,4 +52,8 @@
 			{
 				range = this.range.clone();
+
+				// Shrink the range to exclude harmful "noises" (#4087, #4450, #5435).
+				range.shrink( CKEDITOR.NODE_ELEMENT, true );
+
 				range.enlarge( this.forceBrBreak || !this.enlargeBr ?
 							   CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS : CKEDITOR.ENLARGE_BLOCK_CONTENTS );
@@ -213,24 +217,6 @@
 				// We have found a block boundary. Let's close the range and move out of the
 				// loop.
-				if ( ( closeRange || isLast ) && range )
-				{
-					var boundaryNodes = range.getBoundaryNodes(),
-						startPath = new CKEDITOR.dom.elementPath( range.startContainer );
-
-					// Drop the range if it only contains bookmark nodes, and is
-					// not because of the original collapsed range. (#4087,#4450)
-					if ( boundaryNodes.startNode.getParent().equals( startPath.blockLimit )
-						 && isBookmark( boundaryNodes.startNode ) && isBookmark( boundaryNodes.endNode ) )
-					{
-						range = null;
-						this._.nextNode = null;
-					}
-					else
+				if ( isLast || ( closeRange && range ) )
 						break;
-				}
-
-				if ( isLast )
-					break;
-
 			}
 
@@ -246,5 +232,5 @@
 				}
 
-				startPath = new CKEDITOR.dom.elementPath( range.startContainer );
+				var startPath = new CKEDITOR.dom.elementPath( range.startContainer );
 				var startBlockLimit = startPath.blockLimit,
 					checkLimits = { div : 1, th : 1, td : 1 };
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/elementspath/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/elementspath/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/elementspath/plugin.js	(revision 5805)
@@ -134,5 +134,7 @@
 			editor.on( 'contentDomUnload', function()
 				{
-					getSpaceElement().setHtml( emptyHtml );
+					// If the spaceElement hasn't been initialized, don't try to do it at this time
+					// Only reuse existing reference.
+					spaceElement && spaceElement.setHtml( emptyHtml );
 				});
 
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/flash/dialogs/flash.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/flash/dialogs/flash.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/flash/dialogs/flash.js	(revision 5805)
@@ -187,5 +187,5 @@
 				// Clear previously saved elements.
 				this.fakeImage = this.objectNode = this.embedNode = null;
-				previewPreloader = new CKEDITOR.dom.element( 'embeded', editor.document );
+				previewPreloader = new CKEDITOR.dom.element( 'embed', editor.document );
 
 				// Try to detect any embed or object tag that has Flash parameters.
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/floatpanel/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/floatpanel/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/floatpanel/plugin.js	(revision 5805)
@@ -130,12 +130,13 @@
 				element.setStyles(
 					{
-						top : top + 'px',
-						left : '-3000px',
-						opacity : '0',	// FF3 is ignoring "visibility"
+						top : '-30000px',
 						display	: ''
 					});
+				// Don't use display or visibility style because we need to
+				// calculate the rendering layout later and focus the element.
+				element.setOpacity( 0 );
 
 				// To allow the context menu to decrease back their width
-				element.getFirst().removeStyle('width');
+				element.getFirst().removeStyle( 'width' );
 
 				// Configure the IFrame blur event. Do that only once.
@@ -204,8 +205,8 @@
 								var widthNode = block.element.$;
 
-								if ( CKEDITOR.env.gecko || CKEDITOR.env.opera)
+								if ( CKEDITOR.env.gecko || CKEDITOR.env.opera )
 									widthNode = widthNode.parentNode;
 
-								if ( CKEDITOR.env.ie)
+								if ( CKEDITOR.env.ie )
 									widthNode = widthNode.document.body;
 
@@ -263,8 +264,7 @@
 								{
 									top : top + 'px',
-									left : left + 'px',
-									opacity : '1'
+									left : left + 'px'
 								} );
-
+							element.setOpacity( 1 );
 						} , this );
 
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/form.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/form.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/form.js	(revision 5805)
@@ -105,5 +105,5 @@
 						label : editor.lang.form.action,
 						'default' : '',
-						accessKey : 'A'
+						accessKey : 'T'
 					},
 					{
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/textfield.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/textfield.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/forms/dialogs/textfield.js	(revision 5805)
@@ -148,5 +148,11 @@
 								validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed )
 							}
-						]
+						],
+						onLoad : function()
+						{
+							// Repaint the style for IE7 (#6068)
+							if ( CKEDITOR.env.ie7Compat )
+								this.getElement().setStyle( 'zoom', '100%' );
+						}
 					},
 					{
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/forms/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/forms/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/forms/plugin.js	(revision 5805)
@@ -28,6 +28,6 @@
 				'background-repeat: no-repeat;' +
 				'border: 1px solid #a9a9a9;' +
-				'width: 16px;' +
-				'height: 16px;' +
+				'width: 16px !important;' +
+				'height: 16px !important;' +
 			'}' );
 
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/htmldataprocessor/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/htmldataprocessor/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/htmldataprocessor/plugin.js	(revision 5805)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -202,5 +202,6 @@
 				title : function( element )
 				{
-					element.children[ 0 ].value = element.attributes[ '_cke_title' ];
+					var titleText = element.children[ 0 ];
+					titleText && ( titleText.value = element.attributes[ '_cke_title' ] || '' );
 				}
 			},
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/image/dialogs/image.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/image/dialogs/image.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/image/dialogs/image.js	(revision 5805)
@@ -576,5 +576,5 @@
 							type : 'text',
 							label : editor.lang.image.alt,
-							accessKey : 'A',
+							accessKey : 'T',
 							'default' : '',
 							onChange : function()
@@ -665,5 +665,5 @@
 																	}
 																	else
-																		element.setStyle( 'width', value + 'px');
+																		element.setStyle( 'width', CKEDITOR.tools.cssLength( value ) );
 																}
 																else if ( type == CLEANUP )
@@ -716,5 +716,5 @@
 																	}
 																	else
-																		element.setStyle( 'height', value + 'px' );
+																		element.setStyle( 'height',  CKEDITOR.tools.cssLength( value ) );
 																}
 																else if ( type == CLEANUP )
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/indent/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/indent/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/indent/plugin.js	(revision 5805)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/link/dialogs/link.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/link/dialogs/link.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/link/dialogs/link.js	(revision 5805)
@@ -1298,5 +1298,7 @@
 				if ( ranges.length == 1 && ranges[0].collapsed )
 				{
-					var text = new CKEDITOR.dom.text( attributes._cke_saved_href, editor.document );
+					// Short mailto link text view (#5736).
+					var text = new CKEDITOR.dom.text( data.type == 'email' ?
+							data.email.address : attributes._cke_saved_href, editor.document );
 					ranges[0].insertNode( text );
 					ranges[0].selectNodeContents( text );
@@ -1349,7 +1351,11 @@
 				element.setAttributes( attributes );
 				element.removeAttributes( removeAttributes );
-				// Update text view when user changes protocol #4612.
-				if (href == textView)
-					element.setHtml( attributes._cke_saved_href );
+				// Update text view when user changes protocol (#4612).
+				if ( href == textView || data.type == 'email' && textView.indexOf( '@' ) != -1 )
+				{
+					// Short mailto link text view (#5736).
+					element.setHtml( data.type == 'email' ?
+						data.email.address : attributes._cke_saved_href );
+				}
 				// Make the element display as an anchor if a name has been set.
 				if ( element.getAttribute( 'name' ) )
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/link/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/link/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/link/plugin.js	(revision 5805)
@@ -38,6 +38,6 @@
 				'background-repeat: no-repeat;' +
 				'border: 1px solid #a9a9a9;' +
-				'width: 18px;' +
-				'height: 18px;' +
+				'width: 18px !important;' +
+				'height: 18px !important;' +
 			'}\n' +
 			'a.cke_anchor' +
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/list/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/list/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/list/plugin.js	(revision 5805)
@@ -219,5 +219,11 @@
 		}
 
-		var fakeParent = groupObj.root.getDocument().createElement( this.type );
+		var root = groupObj.root,
+			fakeParent = root.getDocument().createElement( this.type );
+		// Copy all attributes, except from 'start' and 'type'.
+		root.copyAttributes( fakeParent, { start : 1, type : 1 } );
+		// The list-style-type property should be ignored.
+		fakeParent.removeStyle( 'list-style-type' );
+
 		for ( i = 0 ; i < selectedListItems.length ; i++ )
 		{
@@ -439,15 +445,4 @@
 			{
 				range = ranges.shift();
-
-				var boundaryNodes = range.getBoundaryNodes(),
-					startNode = boundaryNodes.startNode,
-					endNode = boundaryNodes.endNode;
-
-				if ( startNode.type == CKEDITOR.NODE_ELEMENT && startNode.getName() == 'td' )
-					range.setStartAt( boundaryNodes.startNode, CKEDITOR.POSITION_AFTER_START );
-
-				if ( endNode.type == CKEDITOR.NODE_ELEMENT && endNode.getName() == 'td' )
-					range.setEndAt( boundaryNodes.endNode, CKEDITOR.POSITION_BEFORE_END );
-
 				var iterator = range.createIterator(),
 					block;
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/liststyle/dialogs/liststyle.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/liststyle/dialogs/liststyle.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/liststyle/dialogs/liststyle.js	(revision 5805)
@@ -134,4 +134,5 @@
 										type : 'text',
 										id : 'start',
+										validate : CKEDITOR.dialog.validate.integer( editor.lang.list.validateStartNumber ),
 										setup : function( element )
 										{
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/liststyle/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/liststyle/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/liststyle/plugin.js	(revision 5805)
@@ -8,7 +8,7 @@
 	CKEDITOR.plugins.liststyle =
 	{
+		requires : [ 'dialog' ],
 		init : function( editor )
 		{
-
 			editor.addCommand( 'numberedListStyle', new CKEDITOR.dialogCommand( 'numberedListStyle' ) );
 			CKEDITOR.dialog.add( 'numberedListStyle', this.path + 'dialogs/liststyle.js' );
@@ -16,9 +16,10 @@
 			CKEDITOR.dialog.add( 'bulletedListStyle', this.path + 'dialogs/liststyle.js' );
 
-			//Register map group;
-			editor.addMenuGroup("list", 108);
 			// If the "menu" plugin is loaded, register the menu items.
 			if ( editor.addMenuItems )
 			{
+				//Register map group;
+				editor.addMenuGroup("list", 108);
+
 				editor.addMenuItems(
 					{
@@ -43,12 +44,15 @@
 				editor.contextMenu.addListener( function( element, selection )
 					{
-						if ( !element )
-							return null;
+						while ( element )
+						{
+							var name = element.getName();
+							if ( name == 'ol' )
+								return { numberedlist: CKEDITOR.TRISTATE_OFF };
+							else if ( name == 'ul' )
+								return { bulletedlist: CKEDITOR.TRISTATE_OFF };
 
-						if ( element.getAscendant( 'ol') )
-							return { numberedlist: CKEDITOR.TRISTATE_OFF };
-
-						if ( element.getAscendant( 'ul' ) )
-							return { bulletedlist: CKEDITOR.TRISTATE_OFF };
+							element = element.getParent();
+						}
+						return null;
 					});
 			}
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/maximize/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/maximize/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/maximize/plugin.js	(revision 5805)
@@ -227,4 +227,8 @@
 
 							shim =  createIframeShim( container );		// IE6 select element penetration when maximized. (#4459)
+
+							// Add cke_maximized class before resize handle since that will change things sizes (#5580)
+							container.addClass( 'cke_maximized' );
+
 							resizeHandler();
 
@@ -240,6 +244,4 @@
 							CKEDITOR.env.gecko && refreshCursor( editor );
 
-							// Add cke_maximized class.
-							container.addClass( 'cke_maximized' );
 						}
 						else if ( this.state == CKEDITOR.TRISTATE_ON )	// Restore from fullscreen if the state is on.
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/pagebreak/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/pagebreak/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/pagebreak/plugin.js	(revision 5805)
@@ -33,8 +33,8 @@
 				'display: block;' +
 				'float: none;' +
-				'width:100%;_width:99.9%;' +
+				'width:100% !important; _width:99.9% !important;' +
 				'border-top: #999999 1px dotted;' +
 				'border-bottom: #999999 1px dotted;' +
-				'height: 5px;' +
+				'height: 5px !important;' +
 				'page-break-after: always;' +
 
@@ -101,4 +101,9 @@
 				range.select();
 			}
+
+			var previous = breakObject.getPrevious();
+
+			if ( CKEDITOR.dtd[ previous.getName() ].div )
+				breakObject.move( previous );
 		}
 
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/panel/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/panel/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/panel/plugin.js	(revision 5805)
@@ -193,4 +193,5 @@
 
 				holder = doc.getBody();
+				holder.unselectable();
 			}
 			else
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/pastefromword/filter/default.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/pastefromword/filter/default.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/pastefromword/filter/default.js	(revision 5805)
@@ -61,6 +61,4 @@
 				if ( child )
 					return child;
-				else
-					continue;
 			}
 		}
@@ -69,5 +67,5 @@
 	};
 
-	// Adding a (set) of styles to the element's attributes.
+	// Adding a (set) of styles to the element's 'style' attributes.
 	elementPrototype.addStyle = function( name, value, isPrepend )
 	{
@@ -122,5 +120,5 @@
 
 	var cssLengthRelativeUnit = /^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz){1}?/i;
-	var emptyMarginRegex = /^(?:\b0[^\s]*\s*){1,4}$/;
+	var emptyMarginRegex = /^(?:\b0[^\s]*\s*){1,4}$/;		// e.g. 0px 0pt 0px
 
 	var listBaseIndent = 0,
@@ -162,9 +160,9 @@
 				else
 				{
-					if ( /[l\u00B7\u2002]/.test( bulletStyle[ 1 ] ) ) //l·•
+					if ( /[l\u00B7\u2002]/.test( bulletStyle[ 1 ] ) )
 						bulletStyle = 'disc';
-					else if ( /[\u006F\u00D8]/.test( bulletStyle[ 1 ] ) )  //oØ
+					else if ( /[\u006F\u00D8]/.test( bulletStyle[ 1 ] ) )
 						bulletStyle = 'circle';
-					else if ( /[\u006E\u25C6]/.test( bulletStyle[ 1 ] ) ) //n◆
+					else if ( /[\u006E\u25C6]/.test( bulletStyle[ 1 ] ) )
 						bulletStyle = 'square';
 					else
@@ -201,6 +199,5 @@
 			{
 				// <cke:listbullet> indicate a list item.
-				var children = element.children,
-					attrs = element.attributes,
+				var attrs = element.attributes,
 					listMarker;
 
@@ -590,5 +587,4 @@
 				elementMigrateFilter = filters.elementMigrateFilter,
 				styleMigrateFilter = CKEDITOR.tools.bind( this.filters.styleMigrateFilter, this.filters ),
-				bogusAttrFilter = filters.bogusAttrFilter,
 				createListBulletMarker = this.utils.createListBulletMarker,
 				flattenList = filters.flattenList,
@@ -757,8 +753,4 @@
 						element.filterChildren();
 
-						var attrs = element.attributes,
-							parent = element.parent,
-							children = element.children;
-
 						// Is the paragraph actually a list item?
 						if ( resolveListItem( element ) )
@@ -830,5 +822,4 @@
 							styleText && parent.addStyle( styleText );
 							delete element.name;
-							return;
 						}
 						// Convert the merged into a span with all attributes preserved.
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/pastetext/dialogs/pastetext.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/pastetext/dialogs/pastetext.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/pastetext/dialogs/pastetext.js	(revision 5805)
@@ -45,23 +45,15 @@
 							},
 							{
-								type : 'html',
+								type : 'textarea',
 								id : 'content',
-								style : 'width:340px;height:170px',
-								html :
-									'<textarea style="' +
-										'width:346px;' +
-										'height:170px;' +
-										'resize: none;' +
-										'direction:' + editor.config.contentsLangDirection + ';' +
-										'border:1px solid black;' +
-										'background-color:white">' +
-									'</textarea>',
+								className : 'cke_pastetext',
 
 								onLoad : function()
 								{
 									var label = this.getDialog().getContentElement( 'general', 'pasteMsg' ).getElement(),
-										input = this.getElement();
+										input = this.getElement().getElementsByTag( 'textarea' ).getItem( 0 );
 
 									input.setAttribute( 'aria-labelledby', label.$.id );
+									input.setStyle( 'direction', editor.config.contentsLangDirection );
 								},
 
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/pastetext/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/pastetext/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/pastetext/plugin.js	(revision 5805)
@@ -21,21 +21,4 @@
 					if ( !clipboardText )
 						throw 0;
-					return clipboardText;
-				},
-				function()
-				{
-					window.netscape.security.PrivilegeManager.enablePrivilege( "UniversalXPConnect" );
-
-					var clip = window.Components.classes[ "@mozilla.org/widget/clipboard;1" ]
-							.getService( window.Components.interfaces.nsIClipboard );
-					var trans = window.Components.classes[ "@mozilla.org/widget/transferable;1" ]
-							.createInstance( window.Components.interfaces.nsITransferable );
-					trans.addDataFlavor( "text/unicode" );
-					clip.getData( trans, clip.kGlobalClipboard );
-
-					var str = {}, strLength = {}, clipboardText;
-					trans.getTransferData( "text/unicode", str, strLength );
-					str = str.value.QueryInterface( window.Components.interfaces.nsISupportsString );
-					clipboardText = str.data.substring( 0, strLength.value / 2 );
 					return clipboardText;
 				}
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/removeformat/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/removeformat/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/removeformat/plugin.js	(revision 5805)
@@ -104,5 +104,8 @@
 								currentNode.remove( true );
 							else
+							{
 								currentNode.removeAttributes( removeAttributes );
+								editor.fire( 'removeFormatCleanup', currentNode );
+							}
 						}
 
@@ -171,2 +174,9 @@
  */
 CKEDITOR.config.removeFormatAttributes = 'class,style,lang,width,height,align,hspace,valign';
+
+/**
+ * Fired after an element was cleaned by the removeFormat plugin.
+ * @name CKEDITOR#removeFormatCleanup
+ * @event
+ * @param {Object} data.element The element that was cleaned up.
+ */
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/resize/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/resize/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/resize/plugin.js	(revision 5805)
@@ -10,5 +10,11 @@
 		var config = editor.config;
 
-		if ( config.resize_enabled )
+		!config.resize_dir && ( config.resize_dir = 'both' );
+		( config.resize_maxWidth == undefined ) && ( config.resize_maxWidth = 3000 );
+		( config.resize_maxHeight == undefined ) && ( config.resize_maxHeight = 3000 );
+		( config.resize_minWidth == undefined ) && ( config.resize_minWidth = 750 );
+		( config.resize_minHeight == undefined ) && ( config.resize_minHeight = 250 );
+
+		if ( config.resize_enabled !== false )
 		{
 			var container = null,
@@ -58,4 +64,7 @@
 					origin = { x : $event.screenX, y : $event.screenY };
 
+					config.resize_minWidth > startSize.width && ( config.resize_minWidth = startSize.width );
+					config.resize_minHeight > startSize.height && ( config.resize_minHeight = startSize.height );
+
 					CKEDITOR.document.on( 'mousemove', dragHandler );
 					CKEDITOR.document.on( 'mouseup', dragEndHandler );
@@ -92,4 +101,6 @@
 /**
  * The minimum editor width, in pixels, when resizing it with the resize handle.
+ * Note: It fallbacks to editor's actual width if that's smaller than the default value.
+ * @name CKEDITOR.config.resize_minWidth
  * @type Number
  * @default 750
@@ -97,8 +108,9 @@
  * config.resize_minWidth = 500;
  */
-CKEDITOR.config.resize_minWidth = 750;
 
 /**
  * The minimum editor height, in pixels, when resizing it with the resize handle.
+ * Note: It fallbacks to editor's actual height if that's smaller than the default value.
+ * @name CKEDITOR.config.resize_minHeight
  * @type Number
  * @default 250
@@ -106,8 +118,8 @@
  * config.resize_minHeight = 600;
  */
-CKEDITOR.config.resize_minHeight = 250;
 
 /**
  * The maximum editor width, in pixels, when resizing it with the resize handle.
+ * @name CKEDITOR.config.resize_maxWidth
  * @type Number
  * @default 3000
@@ -115,8 +127,8 @@
  * config.resize_maxWidth = 750;
  */
-CKEDITOR.config.resize_maxWidth = 3000;
 
 /**
  * The maximum editor height, in pixels, when resizing it with the resize handle.
+ * @name CKEDITOR.config.resize_maxHeight
  * @type Number
  * @default 3000
@@ -124,8 +136,8 @@
  * config.resize_maxHeight = 600;
  */
-CKEDITOR.config.resize_maxHeight = 3000;
 
 /**
  * Whether to enable the resizing feature. If disabled the resize handler will not be visible.
+ * @name CKEDITOR.config.resize_enabled
  * @type Boolean
  * @default true
@@ -133,9 +145,9 @@
  * config.resize_enabled = false;
  */
-CKEDITOR.config.resize_enabled = true;
 
 /**
  * The directions to which the editor resizing is enabled. Possible values
  * are "both", "vertical" and "horizontal".
+ * @name CKEDITOR.config.resize_dir
  * @type String
  * @default 'both'
@@ -144,3 +156,2 @@
  * config.resize_dir = 'vertical';
  */
-CKEDITOR.config.resize_dir = 'both';
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/scayt/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/scayt/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/scayt/plugin.js	(revision 5805)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -383,5 +383,5 @@
 			// Default to 'http' for unknown.
 			protocol = protocol.search( /https?:/) != -1? protocol : 'http:';
-			var baseUrl  = 'svc.spellchecker.net/spellcheck31/lf/scayt24/loader__base.js';
+			var baseUrl  = 'svc.spellchecker.net/scayt25/loader__base.js';
 
 			var scaytUrl  =  editor.config.scayt_srcUrl || ( protocol + '//' + baseUrl );
@@ -454,7 +454,4 @@
 		exec: function( editor )
 		{
-			var autoStartup = editor.config.scayt_autoStartup;
-			autoStartup = ( autoStartup == undefined ) || autoStartup;
-
 			if ( plugin.isScaytReady( editor ) )
 			{
@@ -473,5 +470,5 @@
 				scayt_control.setDisabled( isEnabled );
 			}
-			else if ( !autoStartup && plugin.engineLoaded >= 0 )	// Load first time
+			else if ( !editor.config.scayt_autoStartup && plugin.engineLoaded >= 0 )	// Load first time
 			{
 				this.setState( CKEDITOR.TRISTATE_DISABLED );
@@ -779,6 +776,5 @@
 
 			// Start plugin
-			var autoStartup = editor.config.scayt_autoStartup;
-			if ( ( autoStartup == undefined ) || autoStartup )
+			if ( editor.config.scayt_autoStartup )
 			{
 				editor.on( 'instanceReady', function()
@@ -812,7 +808,7 @@
  * @name CKEDITOR.config.scayt_autoStartup
  * @type Boolean
- * @default true
- * @example
- * config.scayt_autoStartup = false;
+ * @default false
+ * @example
+ * config.scayt_autoStartup = true;
  */
 
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/selection/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/selection/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/selection/plugin.js	(revision 5805)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -18,5 +18,5 @@
 			// releasing the WYSIWYG mode, so we need to check it first.
 			var sel = this.getSelection();
-			if ( !sel )
+			if ( !sel || !sel.document.getWindow().$ )
 				return;
 
@@ -106,5 +106,6 @@
 				{
 					var doc = editor.document,
-						body = doc.getBody();
+						body = doc.getBody(),
+						html = doc.getDocumentElement();
 
 					if ( CKEDITOR.env.ie )
@@ -116,5 +117,6 @@
 
 						var savedRange,
-							saveEnabled;
+							saveEnabled,
+							restoreEnabled = 1;
 
 						// "onfocusin" is fired before "onfocus". It makes it
@@ -132,11 +134,14 @@
 								if ( savedRange )
 								{
-									// Well not break because of this.
-									try
+									if ( restoreEnabled )
 									{
-										savedRange.select();
+										// Well not break because of this.
+										try
+										{
+											savedRange.select();
+										}
+										catch (e)
+										{}
 									}
-									catch (e)
-									{}
 
 									savedRange = null;
@@ -161,4 +166,5 @@
 								// Disable selections from being saved.
 								saveEnabled = false;
+								restoreEnabled = 1;
 							});
 
@@ -167,7 +173,36 @@
 						if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
 						{
-							doc.getWindow().on( 'blur', function( evt )
+							editor.on( 'blur', function( evt )
 							{
-								editor.document.$.selection.empty();
+								editor.document && editor.document.$.selection.empty();
+							});
+						}
+
+						// Listening on document element ensures that
+						// scrollbar is included. (#5280)
+						html.on( 'mousedown', function ()
+						{
+							// Lock restore selection now, as we have
+							// a followed 'click' event which introduce
+							// new selection. (#5735)
+							restoreEnabled = 0;
+						});
+
+						html.on( 'mouseup', function ()
+						{
+							restoreEnabled = 1;
+						});
+
+						// In IE6/7 the blinking cursor appears, but contents are
+						// not editable. (#5634)
+						if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.version < 8 || CKEDITOR.env.quirks ) )
+						{
+							// The 'click' event is not fired when clicking the
+							// scrollbars, so we can use it to check whether
+							// the empty space following <body> has been clicked.
+							html.on( 'click', function( evt )
+							{
+								if ( evt.data.getTarget().getName() == 'html' )
+									editor.getSelection().getRanges()[ 0 ].select();
 							});
 						}
@@ -175,5 +210,9 @@
 						// IE fires the "selectionchange" event when clicking
 						// inside a selection. We don't want to capture that.
-						body.on( 'mousedown', disableSave );
+						body.on( 'mousedown', function ()
+						{
+							disableSave();
+						});
+
 						body.on( 'mouseup',
 							function()
@@ -236,7 +275,9 @@
 								// Avoid saving selection from within text input. (#5747)
 								var parentTag;
-								if ( nativeSel && nativeSel.type == 'Text'
-									&& ( parentTag = nativeSel.createRange().parentElement().nodeName.toLowerCase() )
-									&& parentTag in { input: 1, textarea : 1 } )
+								if ( nativeSel && nativeSel.type && nativeSel.type != 'Control'
+									&& ( parentTag = nativeSel.createRange() )
+									&& ( parentTag = parentTag.parentElement() )
+									&& ( parentTag = parentTag.nodeName )
+									&& parentTag.toLowerCase() in { input: 1, textarea : 1 } )
 								{
 									return;
@@ -476,4 +517,13 @@
 				},
 
+		/**
+		 * Retrieve the {@link CKEDITOR.dom.range} instances that represent the current selection.
+		 * Note: Some browsers returns multiple ranges even on a sequent selection, e.g. Firefox returns
+		 * one range for each table cell when one or more table row is selected.
+		 * @return {Array}
+		 * @example
+		 * var ranges = selection.getRanges();
+		 * alert(ranges.length);
+		 */
 		getRanges :
 			CKEDITOR.env.ie ?
@@ -837,4 +887,8 @@
 		},
 
+		/**
+		 *  Make the current selection of type {@link CKEDITOR.SELECTION_ELEMENT} by enclosing the specified element.
+		 * @param element
+		 */
 		selectElement : function( element )
 		{
@@ -893,4 +947,9 @@
 		},
 
+		/**
+		 *  Adding the specified ranges to document selection preceding
+		 * by clearing up the original selection.
+		 * @param {CKEDITOR.dom.range} ranges
+		 */
 		selectRanges : function( ranges )
 		{
@@ -947,4 +1006,10 @@
 		},
 
+		/**
+		 *  Create bookmark for every single of this selection range (from #getRanges)
+		 * by calling the {@link CKEDITOR.dom.range.prototype.createBookmark} method,
+		 * with extra cares to avoid interferon among those ranges. Same arguments are
+		 * received as with the underlay range method.
+		 */
 		createBookmarks : function( serializable )
 		{
@@ -979,4 +1044,10 @@
 		},
 
+		/**
+		 *  Create bookmark for every single of this selection range (from #getRanges)
+		 * by calling the {@link CKEDITOR.dom.range.prototype.createBookmark2} method,
+		 * with extra cares to avoid interferon among those ranges. Same arguments are
+		 * received as with the underlay range method.
+		 */
 		createBookmarks2 : function( normalized )
 		{
@@ -990,4 +1061,8 @@
 		},
 
+		/**
+		 * Select the virtual ranges denote by the bookmarks by calling #selectRanges.
+		 * @param bookmarks
+		 */
 		selectBookmarks : function( bookmarks )
 		{
@@ -1003,4 +1078,7 @@
 		},
 
+		/**
+		 * Retrieve the common ancestor node of the first range and the last range.
+		 */
 		getCommonAncestor : function()
 		{
@@ -1011,5 +1089,7 @@
 		},
 
-		// Moving scroll bar to the current selection's start position.
+		/**
+		 * Moving scroll bar to the current selection's start position.
+		 */
 		scrollIntoView : function()
 		{
@@ -1021,149 +1101,150 @@
 	};
 })();
+
 ( function()
 {
-var notWhitespaces = CKEDITOR.dom.walker.whitespaces( true );
-var fillerTextRegex = /\ufeff|\u00a0/;
-var nonCells = { table:1,tbody:1,tr:1 };
-
-CKEDITOR.dom.range.prototype.select =
-	CKEDITOR.env.ie ?
-		// V2
-		function( forceExpand )
-		{
-			var collapsed = this.collapsed;
-			var isStartMarkerAlone;
-			var dummySpan;
-
-			// IE doesn't support selecting the entire table row/cell, move the selection into cells, e.g.
-			// <table><tbody><tr>[<td>cell</b></td>... => <table><tbody><tr><td>[cell</td>...
-			if ( this.startContainer.type == CKEDITOR.NODE_ELEMENT && this.startContainer.getName() in nonCells
-				|| this.endContainer.type == CKEDITOR.NODE_ELEMENT && this.endContainer.getName() in nonCells )
-			{
-				this.shrink( CKEDITOR.NODE_ELEMENT, true );
-			}
-
-			var bookmark = this.createBookmark();
-
-			// Create marker tags for the start and end boundaries.
-			var startNode = bookmark.startNode;
-
-			var endNode;
-			if ( !collapsed )
-				endNode = bookmark.endNode;
-
-			// Create the main range which will be used for the selection.
-			var ieRange = this.document.$.body.createTextRange();
-
-			// Position the range at the start boundary.
-			ieRange.moveToElementText( startNode.$ );
-			ieRange.moveStart( 'character', 1 );
-
-			if ( endNode )
-			{
-				// Create a tool range for the end.
-				var ieRangeEnd = this.document.$.body.createTextRange();
-
-				// Position the tool range at the end.
-				ieRangeEnd.moveToElementText( endNode.$ );
-
-				// Move the end boundary of the main range to match the tool range.
-				ieRange.setEndPoint( 'EndToEnd', ieRangeEnd );
-				ieRange.moveEnd( 'character', -1 );
-			}
-			else
-			{
-				// The isStartMarkerAlone logic comes from V2. It guarantees that the lines
-				// will expand and that the cursor will be blinking on the right place.
-				// Actually, we are using this flag just to avoid using this hack in all
-				// situations, but just on those needed.
-				var next = startNode.getNext( notWhitespaces );
-				isStartMarkerAlone = ( !( next && next.getText && next.getText().match( fillerTextRegex ) )     // already a filler there?
-									  && ( forceExpand || !startNode.hasPrevious() || ( startNode.getPrevious().is && startNode.getPrevious().is( 'br' ) ) ) );
-
-				// Append a temporary <span>&#65279;</span> before the selection.
-				// This is needed to avoid IE destroying selections inside empty
-				// inline elements, like <b></b> (#253).
-				// It is also needed when placing the selection right after an inline
-				// element to avoid the selection moving inside of it.
-				dummySpan = this.document.createElement( 'span' );
-				dummySpan.setHtml( '&#65279;' );	// Zero Width No-Break Space (U+FEFF). See #1359.
-				dummySpan.insertBefore( startNode );
-
-				if ( isStartMarkerAlone )
-				{
-					// To expand empty blocks or line spaces after <br>, we need
-					// instead to have any char, which will be later deleted using the
-					// selection.
-					// \ufeff = Zero Width No-Break Space (U+FEFF). (#1359)
-					this.document.createText( '\ufeff' ).insertBefore( startNode );
-				}
-			}
-
-			// Remove the markers (reset the position, because of the changes in the DOM tree).
-			this.setStartBefore( startNode );
-			startNode.remove();
-
-			if ( collapsed )
-			{
-				if ( isStartMarkerAlone )
-				{
-					// Move the selection start to include the temporary \ufeff.
-					ieRange.moveStart( 'character', -1 );
-
+	var notWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
+			fillerTextRegex = /\ufeff|\u00a0/,
+			nonCells = { table:1,tbody:1,tr:1 };
+
+	CKEDITOR.dom.range.prototype.select =
+		CKEDITOR.env.ie ?
+			// V2
+			function( forceExpand )
+			{
+				var collapsed = this.collapsed;
+				var isStartMarkerAlone;
+				var dummySpan;
+
+				// IE doesn't support selecting the entire table row/cell, move the selection into cells, e.g.
+				// <table><tbody><tr>[<td>cell</b></td>... => <table><tbody><tr><td>[cell</td>...
+				if ( this.startContainer.type == CKEDITOR.NODE_ELEMENT && this.startContainer.getName() in nonCells
+					|| this.endContainer.type == CKEDITOR.NODE_ELEMENT && this.endContainer.getName() in nonCells )
+				{
+					this.shrink( CKEDITOR.NODE_ELEMENT, true );
+				}
+
+				var bookmark = this.createBookmark();
+
+				// Create marker tags for the start and end boundaries.
+				var startNode = bookmark.startNode;
+
+				var endNode;
+				if ( !collapsed )
+					endNode = bookmark.endNode;
+
+				// Create the main range which will be used for the selection.
+				var ieRange = this.document.$.body.createTextRange();
+
+				// Position the range at the start boundary.
+				ieRange.moveToElementText( startNode.$ );
+				ieRange.moveStart( 'character', 1 );
+
+				if ( endNode )
+				{
+					// Create a tool range for the end.
+					var ieRangeEnd = this.document.$.body.createTextRange();
+
+					// Position the tool range at the end.
+					ieRangeEnd.moveToElementText( endNode.$ );
+
+					// Move the end boundary of the main range to match the tool range.
+					ieRange.setEndPoint( 'EndToEnd', ieRangeEnd );
+					ieRange.moveEnd( 'character', -1 );
+				}
+				else
+				{
+					// The isStartMarkerAlone logic comes from V2. It guarantees that the lines
+					// will expand and that the cursor will be blinking on the right place.
+					// Actually, we are using this flag just to avoid using this hack in all
+					// situations, but just on those needed.
+					var next = startNode.getNext( notWhitespaces );
+					isStartMarkerAlone = ( !( next && next.getText && next.getText().match( fillerTextRegex ) )     // already a filler there?
+										  && ( forceExpand || !startNode.hasPrevious() || ( startNode.getPrevious().is && startNode.getPrevious().is( 'br' ) ) ) );
+
+					// Append a temporary <span>&#65279;</span> before the selection.
+					// This is needed to avoid IE destroying selections inside empty
+					// inline elements, like <b></b> (#253).
+					// It is also needed when placing the selection right after an inline
+					// element to avoid the selection moving inside of it.
+					dummySpan = this.document.createElement( 'span' );
+					dummySpan.setHtml( '&#65279;' );	// Zero Width No-Break Space (U+FEFF). See #1359.
+					dummySpan.insertBefore( startNode );
+
+					if ( isStartMarkerAlone )
+					{
+						// To expand empty blocks or line spaces after <br>, we need
+						// instead to have any char, which will be later deleted using the
+						// selection.
+						// \ufeff = Zero Width No-Break Space (U+FEFF). (#1359)
+						this.document.createText( '\ufeff' ).insertBefore( startNode );
+					}
+				}
+
+				// Remove the markers (reset the position, because of the changes in the DOM tree).
+				this.setStartBefore( startNode );
+				startNode.remove();
+
+				if ( collapsed )
+				{
+					if ( isStartMarkerAlone )
+					{
+						// Move the selection start to include the temporary \ufeff.
+						ieRange.moveStart( 'character', -1 );
+
+						ieRange.select();
+
+						// Remove our temporary stuff.
+						this.document.$.selection.clear();
+					}
+					else
+						ieRange.select();
+
+					this.moveToPosition( dummySpan, CKEDITOR.POSITION_BEFORE_START );
+					dummySpan.remove();
+				}
+				else
+				{
+					this.setEndBefore( endNode );
+					endNode.remove();
 					ieRange.select();
-
-					// Remove our temporary stuff.
-					this.document.$.selection.clear();
-				}
-				else
-					ieRange.select();
-
-				this.moveToPosition( dummySpan, CKEDITOR.POSITION_BEFORE_START );
-				dummySpan.remove();
-			}
-			else
-			{
-				this.setEndBefore( endNode );
-				endNode.remove();
-				ieRange.select();
-			}
-
-			this.document.fire( 'selectionchange' );
-		}
-	:
-		function()
-		{
-			var startContainer = this.startContainer;
-
-			// If we have a collapsed range, inside an empty element, we must add
-			// something to it, otherwise the caret will not be visible.
-			if ( this.collapsed && startContainer.type == CKEDITOR.NODE_ELEMENT && !startContainer.getChildCount() )
-				startContainer.append( new CKEDITOR.dom.text( '' ) );
-
-			var nativeRange = this.document.$.createRange();
-			nativeRange.setStart( startContainer.$, this.startOffset );
-
-			try
-			{
-				nativeRange.setEnd( this.endContainer.$, this.endOffset );
-			}
-			catch ( e )
-			{
-				// There is a bug in Firefox implementation (it would be too easy
-				// otherwise). The new start can't be after the end (W3C says it can).
-				// So, let's create a new range and collapse it to the desired point.
-				if ( e.toString().indexOf( 'NS_ERROR_ILLEGAL_VALUE' ) >= 0 )
-				{
-					this.collapse( true );
+				}
+
+				this.document.fire( 'selectionchange' );
+			}
+		:
+			function()
+			{
+				var startContainer = this.startContainer;
+
+				// If we have a collapsed range, inside an empty element, we must add
+				// something to it, otherwise the caret will not be visible.
+				if ( this.collapsed && startContainer.type == CKEDITOR.NODE_ELEMENT && !startContainer.getChildCount() )
+					startContainer.append( new CKEDITOR.dom.text( '' ) );
+
+				var nativeRange = this.document.$.createRange();
+				nativeRange.setStart( startContainer.$, this.startOffset );
+
+				try
+				{
 					nativeRange.setEnd( this.endContainer.$, this.endOffset );
 				}
-				else
-					throw( e );
-			}
-
-			var selection = this.document.getSelection().getNative();
-			selection.removeAllRanges();
-			selection.addRange( nativeRange );
-		};
+				catch ( e )
+				{
+					// There is a bug in Firefox implementation (it would be too easy
+					// otherwise). The new start can't be after the end (W3C says it can).
+					// So, let's create a new range and collapse it to the desired point.
+					if ( e.toString().indexOf( 'NS_ERROR_ILLEGAL_VALUE' ) >= 0 )
+					{
+						this.collapse( true );
+						nativeRange.setEnd( this.endContainer.$, this.endOffset );
+					}
+					else
+						throw( e );
+				}
+
+				var selection = this.document.getSelection().getNative();
+				selection.removeAllRanges();
+				selection.addRange( nativeRange );
+			};
 } )();
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/showborders/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/showborders/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/showborders/plugin.js	(revision 5805)
@@ -84,4 +84,12 @@
 						command.refresh( editor );
 				});
+
+			editor.on( 'removeFormatCleanup', function( evt )
+				{
+					var element = evt.data;
+					if ( editor.getCommand( 'showborders' ).state == CKEDITOR.TRISTATE_ON &&
+						element.is( 'table' ) && ( !element.hasAttribute( 'border' ) || parseInt( element.getAttribute( 'border' ), 10 ) <= 0 ) )
+							element.addClass( showBorderClassName );
+				});
 		},
 
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/smiley/dialogs/smiley.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/smiley/dialogs/smiley.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/smiley/dialogs/smiley.js	(revision 5805)
@@ -9,5 +9,5 @@
 		lang = editor.lang.smiley,
 		images = config.smiley_images,
-		columns = 8,
+		columns = config.smiley_columns || 8,
 		i;
 
@@ -22,7 +22,5 @@
 			targetName = target.getName();
 
-		if ( targetName == 'td' )
-			target = target.getChild( [ 0, 0 ] );
-		else if ( targetName == 'a' )
+		if ( targetName == 'a' )
 			target = target.getChild( 0 );
 		else if ( targetName != 'img' )
@@ -152,11 +150,11 @@
 		var smileyLabelId = 'cke_smile_label_' + i + '_' + CKEDITOR.tools.getNextNumber();
 		html.push(
-			'<td class="cke_dark_background cke_hand cke_centered" style="vertical-align: middle;">' +
+			'<td class="cke_dark_background cke_centered" style="vertical-align: middle;">' +
 				'<a href="javascript:void(0)" role="option"',
 					' aria-posinset="' + ( i +1 ) + '"',
 					' aria-setsize="' + size + '"',
 					' aria-labelledby="' + smileyLabelId + '"',
-					' class="cke_smile" tabindex="-1" onkeydown="CKEDITOR.tools.callFunction( ', onKeydown, ', event, this );">',
-					'<img class="hand" title="', config.smiley_descriptions[i], '"' +
+					' class="cke_smile cke_hand" tabindex="-1" onkeydown="CKEDITOR.tools.callFunction( ', onKeydown, ', event, this );">',
+					'<img class="cke_hand" title="', config.smiley_descriptions[i], '"' +
 						' cke_src="', CKEDITOR.tools.htmlEncode( config.smiley_path + images[ i ] ), '" alt="', config.smiley_descriptions[i], '"',
 						' src="', CKEDITOR.tools.htmlEncode( config.smiley_path + images[ i ] ), '"',
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/smiley/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/smiley/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/smiley/plugin.js	(revision 5805)
@@ -83,2 +83,12 @@
 		'yes', 'heart', 'broken heart', 'kiss', 'mail'
 	];
+
+/**
+ * The number of columns to be generated by the smilies matrix.
+ * @name CKEDITOR.config.smiley_columns
+ * @type Number
+ * @default 8
+ * @since 3.3.2
+ * @example
+ * config.smiley_columns = 6;
+ */
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/styles/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/styles/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/styles/plugin.js	(revision 5805)
@@ -61,5 +61,5 @@
 						// Save the current state, so it can be compared next
 						// time.
-						callback.state !== currentState;
+						callback.state = currentState;
 					}
 				}
@@ -67,5 +67,5 @@
 	}
 
-	// Save the callback info, so it can be checked on the next occurence of
+	// Save the callback info, so it can be checked on the next occurrence of
 	// selectionChange.
 	styleStateChangeCallbacks.push( { style : style, fn : callback } );
@@ -181,4 +181,8 @@
 		},
 
+		/**
+		 * Whether this style can be applied at the element path.
+ 		 * @param elementPath
+		 */
 		checkApplicable : function( elementPath )
 		{
@@ -223,4 +227,6 @@
 
 						var elementAttr = element.getAttribute( attName ) || '';
+
+						// Special treatment for 'style' attribute is required.
 						if ( attName == 'style' ?
 							compareCssText( attribs[ attName ], normalizeCssText( elementAttr, false ) )
@@ -769,4 +775,5 @@
 	}
 
+	var nonWhitespaces = CKEDITOR.dom.walker.whitespaces( true );
 	/**
 	 * Merge a <pre> block with a previous sibling if available.
@@ -775,5 +782,5 @@
 	{
 		var previousBlock;
-		if ( !( ( previousBlock = preBlock.getPreviousSourceNode( true, CKEDITOR.NODE_ELEMENT ) )
+		if ( !( ( previousBlock = preBlock.getPrevious( nonWhitespaces ) )
 				 && previousBlock.is
 				 && previousBlock.is( 'pre') ) )
@@ -1199,4 +1206,5 @@
 	}
 
+	// Make the comparison of attribute value easier by standardizing it.
 	function normalizeProperty( name, value, isStyle )
 	{
@@ -1206,4 +1214,5 @@
 	}
 
+	// Make the comparison of style text easier by standardizing it.
 	function normalizeCssText( unparsedCssText, nativeNormalize )
 	{
@@ -1241,4 +1250,10 @@
 	}
 
+	/**
+	 * Compare two bunch of styles, with the speciality that value 'inherit'
+	 * is treated as a wildcard which will match any value.
+	 * @param {Object|String} source
+	 * @param {Object|String} target
+	 */
 	function compareCssText( source, target )
 	{
@@ -1247,6 +1262,4 @@
 		for( var name in source )
 		{
-			// Value 'inherit'  is treated as a wildcard,
-			// which will match any value.
 			if ( !( name in target &&
 					( target[ name ] == source[ name ]
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/table/dialogs/table.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/table/dialogs/table.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/table/dialogs/table.js	(revision 5805)
@@ -233,4 +233,5 @@
 											'default' : 3,
 											label : editor.lang.table.rows,
+											required : true,
 											style : 'width:5em',
 											validate : function()
@@ -258,4 +259,5 @@
 											'default' : 2,
 											label : editor.lang.table.columns,
+											required : true,
 											style : 'width:5em',
 											validate : function()
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/tabletools/dialogs/tableCell.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/tabletools/dialogs/tableCell.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/tabletools/dialogs/tableCell.js	(revision 5805)
@@ -6,16 +6,12 @@
 CKEDITOR.dialog.add( 'cellProperties', function( editor )
 	{
-		var langTable = editor.lang.table;
-		var langCell = langTable.cell;
-		var langCommon = editor.lang.common;
-		var validate = CKEDITOR.dialog.validate;
-		var widthPattern = /^(\d+(?:\.\d+)?)(px|%)$/,
-			heightPattern = /^(\d+(?:\.\d+)?)px$/;
-		var bind = CKEDITOR.tools.bind;
-
-		function spacer()
-		{
-			return { type : 'html', html : '&nbsp;' };
-		}
+		var langTable = editor.lang.table,
+			langCell = langTable.cell,
+			langCommon = editor.lang.common,
+			validate = CKEDITOR.dialog.validate,
+			widthPattern = /^(\d+(?:\.\d+)?)(px|%)$/,
+			heightPattern = /^(\d+(?:\.\d+)?)px$/,
+			bind = CKEDITOR.tools.bind,
+			spacer = { type : 'html', html : '&nbsp;' };
 
 		/**
@@ -35,13 +31,13 @@
 				releaseHandlers( this );
 			};
+			var releaseHandlers = function( dialog )
+			{
+				dialog.removeListener( 'ok', onOk );
+				dialog.removeListener( 'cancel', onCancel );
+			};
 			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 );
@@ -154,5 +150,5 @@
 													setup : function( selectedCell )
 													{
-														var widthMatch = widthPattern.exec( selectedCell.$.style.width );
+														var widthMatch = widthPattern.exec( selectedCell.getStyle( 'width' ) || selectedCell.getAttribute( 'width' ) );
 														if ( widthMatch )
 															this.setValue( widthMatch[2] );
@@ -213,5 +209,5 @@
 											]
 										},
-										spacer(),
+										spacer,
 										{
 											type : 'select',
@@ -244,5 +240,5 @@
 											}
 										},
-										spacer(),
+										spacer,
 										{
 											type : 'select',
@@ -326,5 +322,5 @@
 									]
 								},
-								spacer(),
+								spacer,
 								{
 									type : 'vbox',
@@ -353,5 +349,5 @@
 											}
 										},
-										spacer(),
+										spacer,
 										{
 											type : 'text',
@@ -400,5 +396,5 @@
 											}
 										},
-										spacer(),
+										spacer,
 										{
 											type : 'hbox',
@@ -451,5 +447,5 @@
 											]
 										},
-										spacer(),
+										spacer,
 										{
 											type : 'hbox',
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/tabletools/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/tabletools/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/tabletools/plugin.js	(revision 5805)
@@ -235,5 +235,5 @@
 				continue;
 
-			cell = new CKEDITOR.dom.element( $row.cells[ cellIndex ].cloneNode( false ) );
+			cell = ( new CKEDITOR.dom.element( $row.cells[ cellIndex ] ) ).clone( false );
 
 			if ( !CKEDITOR.env.ie )
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/wsc/dialogs/wsc.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/wsc/dialogs/wsc.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/wsc/dialogs/wsc.css	(revision 5805)
@@ -71,5 +71,4 @@
 	border-bottom: #d5d59d 1px solid;
 	cursor: pointer;
-	cursor: hand;
 }
 
Index: /CKEditor/branches/versions/3.3.x/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/plugins/wysiwygarea/plugin.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/plugins/wysiwygarea/plugin.js	(revision 5805)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -15,5 +15,7 @@
 
 	// Matching an empty paragraph at the end of document.
-	var emptyParagraphRegexp = /\s*<(p|div|address|h\d|center)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\1>)?\s*(?=$|<\/body>)/gi;
+	var emptyParagraphRegexp = /\s*<(p|div|address|h\d|center|li)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\1>)?\s*(?=$|<\/body>)/gi;
+
+	var notWhitespaceEval = CKEDITOR.dom.walker.whitespaces( true );
 
 	function onInsertHtml( evt )
@@ -47,4 +49,13 @@
 			else
 				this.document.$.execCommand( 'inserthtml', false, data );
+
+			// Webkit does not scroll to the cursor position after pasting (#5558)
+			if ( CKEDITOR.env.webkit )
+			{
+				this.document.$.execCommand( 'inserthtml', false, '<span id="cke_paste_marker" cke_temp="1"></span>' );
+				var marker = this.document.getById( 'cke_paste_marker' );
+				marker.scrollIntoView();
+				marker.remove();
+			}
 
 			CKEDITOR.tools.setTimeout( function()
@@ -122,7 +133,15 @@
 			range.moveToPosition( lastElement, CKEDITOR.POSITION_AFTER_END );
 
-			var next = lastElement.getNextSourceNode( true );
-			if ( next && next.type == CKEDITOR.NODE_ELEMENT )
-				range.moveToElementEditStart( next );
+			// If we're inserting a block element immediatelly followed by
+			// another block element, the selection must move there. (#3100,#5436)
+			if ( isBlock )
+			{
+				var next = lastElement.getNext( notWhitespaceEval ),
+					nextName = next && next.type == CKEDITOR.NODE_ELEMENT && next.getName();
+
+				// Check if it's a block element that accepts text.
+				if ( nextName && CKEDITOR.dtd.$block[ nextName ] && CKEDITOR.dtd[ nextName ]['#'] )
+					range.moveToElementEditStart( next );
+			}
 
 			selection.selectRanges( [ range ] );
@@ -177,4 +196,32 @@
 
 	isNotWhitespace = CKEDITOR.dom.walker.whitespaces( true );
+
+	// Gecko need a key event to 'wake up' the editing
+	// ability when document is empty.(#3864, #5781)
+	function activateEditing( editor )
+	{
+		var win = editor.window,
+			doc = editor.document,
+			body = editor.document.getBody(),
+			bodyChildsNum = body.getChildren().count();
+
+		if ( !bodyChildsNum || ( bodyChildsNum == 1&& body.getFirst().hasAttribute( '_moz_editor_bogus_node' ) ) )
+		{
+			restoreDirty( editor );
+
+			// Simulating keyboard character input by dispatching a keydown of white-space text.
+			var keyEventSimulate = doc.$.createEvent( "KeyEvents" );
+			keyEventSimulate.initKeyEvent( 'keypress', true, true, win.$, false,
+				false, false, false, 0, 32 );
+			doc.$.dispatchEvent( keyEventSimulate );
+
+			// Restore the original document status by placing the cursor before a bogus br created (#5021).
+			bodyChildsNum && body.getFirst().remove();
+			doc.getBody().appendBogus();
+			var nativeRange = new CKEDITOR.dom.range( doc );
+			nativeRange.setStartAt( body , CKEDITOR.POSITION_AFTER_START );
+			nativeRange.select();
+		}
+	}
 
 	/**
@@ -192,4 +239,6 @@
 			enterMode = editor.config.enterMode;
 
+		CKEDITOR.env.gecko && activateEditing( editor );
+
 		// When enterMode set to block, we'll establing new paragraph only if we're
 		// selecting inline contents right under body. (#3657)
@@ -217,17 +266,22 @@
 			if ( isBlankParagraph( fixedBlock ) )
 			{
-				var previousElement = fixedBlock.getPrevious( isNotWhitespace ),
-					nextElement = fixedBlock.getNext( isNotWhitespace );
-
-				if ( previousElement && previousElement.getName
-					 && !( previousElement.getName() in nonExitableElementNames )
-					 && isBlankParagraph( previousElement )
-					 && range.moveToElementEditStart( previousElement )
-					 || nextElement && nextElement.getName
-						&& !( nextElement.getName() in nonExitableElementNames )
-						&& isBlankParagraph( nextElement )
-						&& range.moveToElementEditStart( nextElement ) )
+				var element = fixedBlock.getNext( isNotWhitespace );
+				if ( element &&
+					 element.type == CKEDITOR.NODE_ELEMENT &&
+					 !nonExitableElementNames[ element.getName() ] )
 				{
+					range.moveToElementEditStart( element );
 					fixedBlock.remove();
+				}
+				else
+				{
+					element = fixedBlock.getPrevious( isNotWhitespace );
+					if ( element &&
+						 element.type == CKEDITOR.NODE_ELEMENT &&
+						 !nonExitableElementNames[ element.getName() ] )
+					{
+						range.moveToElementEditEnd( element );
+						fixedBlock.remove();
+					}
 				}
 			}
@@ -396,31 +450,5 @@
 						}
 
-						// Gecko need a key event to 'wake up' the editing
-						// ability when document is empty.(#3864)
-						if ( CKEDITOR.env.gecko && !body.childNodes.length )
-						{
-							setTimeout( function()
-							{
-								restoreDirty( editor );
-
-								// Simulating keyboard character input by dispatching a keydown of white-space text.
-								var keyEventSimulate = domDocument.$.createEvent( "KeyEvents" );
-								keyEventSimulate.initKeyEvent( 'keypress', true, true, domWindow.$, false,
-									false, false, false, 0, 32 );
-								domDocument.$.dispatchEvent( keyEventSimulate );
-
-								// Restore the original document status by placing the cursor before a bogus br created (#5021).
-								domDocument.createElement( 'br', { attributes: { '_moz_editor_bogus_node' : 'TRUE', '_moz_dirty' : "" } } )
-									.replace( domDocument.getBody().getFirst() );
-								var nativeRange = new CKEDITOR.dom.range( domDocument );
-								nativeRange.setStartAt( new CKEDITOR.dom.element( body ) , CKEDITOR.POSITION_AFTER_START );
-								nativeRange.select();
-							}, 0 );
-						}
-
-						// IE, Opera and Safari may not support it and throw
-						// errors.
-						try { domDocument.execCommand( 'enableObjectResizing', false, !editor.config.disableObjectResizing ) ; } catch(e) {}
-						try { domDocument.execCommand( 'enableInlineTableEditing', false, !editor.config.disableNativeTableHandles ) ; } catch(e) {}
+						CKEDITOR.env.gecko && CKEDITOR.tools.setTimeout( activateEditing, 0, null, editor );
 
 						domWindow	= editor.window		= new CKEDITOR.dom.window( domWindow );
@@ -443,4 +471,24 @@
 								if ( control.is( 'img', 'hr', 'input', 'textarea', 'select' ) )
 									editor.getSelection().selectElement( control );
+							} );
+						}
+
+						if ( CKEDITOR.env.gecko )
+						{
+							domDocument.on( 'mouseup', function( ev )
+							{
+								if ( ev.data.$.button == 2 )
+								{
+									var target = ev.data.getTarget();
+
+									// Prevent right click from selecting an empty block even
+									// when selection is anchored inside it. (#5845)
+									if ( !target.getOuterHtml().replace( emptyParagraphRegexp, '' ) )
+									{
+										var range = new CKEDITOR.dom.range( domDocument );
+										range.moveToElementEditStart( target );
+										range.select( true );
+									}
+								}
 							} );
 						}
@@ -499,15 +547,4 @@
 								else if ( CKEDITOR.env.opera )
 									doc.getBody().focus();
-								else if ( CKEDITOR.env.webkit )
-								{
-									// Selection will get lost after move focus
-									// to document element, save it first.
-									var sel = editor.getSelection(),
-											type = sel.getType(),
-											range = ( type != CKEDITOR.SELECTION_NONE ) && sel.getRanges()[ 0 ];
-
-									doc.getDocumentElement().focus();
-									range && range.select();
-								}
 
 								editor.focusManager.focus();
@@ -596,4 +633,8 @@
 									editor.fire( 'dataReady' );
 								}, 0 );
+
+								// IE, Opera and Safari may not support it and throw errors.
+								try { editor.document.$.execCommand( 'enableObjectResizing', false, !editor.config.disableObjectResizing ) ; } catch(e) {}
+								try { editor.document.$.execCommand( 'enableInlineTableEditing', false, !editor.config.disableNativeTableHandles ) ; } catch(e) {}
 
 								/*
@@ -778,4 +819,11 @@
 
 								iframe.clearCustomData();
+
+								/*
+								* IE BUG: When destroying editor DOM with the selection remains inside
+								* editing area would break IE7/8's selection system, we have to put the editing
+								* iframe offline first. (#3812 and #5441)
+								*/
+								iframe.remove();
 							},
 
@@ -883,5 +931,5 @@
 			{
 				var element = evt.data;
-				if ( element.type = CKEDITOR.NODE_ELEMENT
+				if ( element.type == CKEDITOR.NODE_ELEMENT
 						&& ( element.is( 'input' ) || element.is( 'textarea' ) ) )
 				{
Index: /CKEditor/branches/versions/3.3.x/_source/skins/kama/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/kama/dialog.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/kama/dialog.css	(revision 5805)
@@ -240,4 +240,8 @@
 }
 
+.cke_skin_kama .cke_browser_ie.cke_rtl div.cke_dialog_ui_input_text {
+	padding-right: 1px;
+}
+
 .cke_skin_kama .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_text,
 .cke_skin_kama .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_password
@@ -677,5 +681,4 @@
 	border: outset 1px;
 	cursor: pointer;
-	cursor: hand;
 }
 
@@ -726,4 +729,25 @@
 }
 
+.cke_skin_kama .cke_dialog .cke_pastetext
+{
+	width: 346px;
+	height: 170px;
+}
+
+.cke_skin_kama .cke_dialog .cke_pastetext textarea
+{
+	width: 340px;
+	height: 170px;
+	resize: none;
+}
+
+.cke_skin_kama .cke_dialog iframe.cke_pasteframe
+{
+	width: 346px;
+	height: 130px;
+	background-color: white;
+	border: 1px solid black;
+}
+
 .cke_skin_kama .cke_dialog .cke_dark_background
 {
@@ -742,5 +766,4 @@
 {
 	cursor: pointer;
-	cursor: hand;
 }
 
@@ -775,5 +798,4 @@
 	display: inline;
 	cursor: pointer;
-	cursor: hand;
 	font-weight: bold;
 	position: relative;
@@ -784,4 +806,9 @@
 {
 	display: none;
+}
+
+.cke_skin_kama .cke_dialog_body label.cke_required
+{
+	font-weight: bold;
 }
 
Index: /CKEditor/branches/versions/3.3.x/_source/skins/kama/elementspath.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/kama/elementspath.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/kama/elementspath.css	(revision 5805)
@@ -37,4 +37,5 @@
 	padding: 1px 4px 0;
 	color: #60676a;
+	cursor: default;
 }
 
Index: /CKEditor/branches/versions/3.3.x/_source/skins/kama/panel.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/kama/panel.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/kama/panel.css	(revision 5805)
@@ -47,5 +47,5 @@
 body.cke_panel_frame
 {
-	overflow: hidden;
+	overflow: auto;
 }
 
@@ -153,6 +153,6 @@
 {
 	padding: 3px;
-    font-size: 11px;
-    font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
+   font-size: 11px;
+   font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
 }
 
@@ -168,5 +168,5 @@
 	width: 10px;
 	height: 10px;
-    border: #808080 1px solid;
+   border: #808080 1px solid;
 	float: left;
 }
Index: /CKEditor/branches/versions/3.3.x/_source/skins/kama/reset.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/kama/reset.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/kama/reset.css	(revision 5805)
@@ -77,2 +77,8 @@
 	cursor: default;
 }
+
+.cke_skin_kama fieldset
+{
+	padding: 10px;
+	border: 2px groove #E0DFE3;
+}
Index: /CKEditor/branches/versions/3.3.x/_source/skins/kama/richcombo.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/kama/richcombo.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/kama/richcombo.css	(revision 5805)
@@ -113,4 +113,5 @@
 	display: inline-block;
 	margin: 0 2px 0 4px;
+	cursor: default;
 }
 
Index: /CKEditor/branches/versions/3.3.x/_source/skins/kama/toolbar.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/kama/toolbar.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/kama/toolbar.css	(revision 5805)
@@ -238,4 +238,5 @@
 	display: inline-block;
 	float: left;
+	cursor: default;
 }
 
@@ -292,4 +293,5 @@
 	background-repeat: no-repeat;
 	float: left;
+	cursor: default;
 }
 
Index: /CKEditor/branches/versions/3.3.x/_source/skins/office2003/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/office2003/dialog.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/office2003/dialog.css	(revision 5805)
@@ -334,4 +334,8 @@
 }
 
+.cke_skin_office2003 .cke_browser_ie.cke_rtl div.cke_dialog_ui_input_text {
+	padding-right: 1px;
+}
+
 .cke_skin_office2003 .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_text,
 .cke_skin_office2003 .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_password
@@ -608,5 +612,4 @@
 	border: outset 1px;
 	cursor: pointer;
-	cursor: hand;
 }
 
@@ -657,4 +660,25 @@
 }
 
+.cke_skin_office2003 .cke_dialog .cke_pastetext
+{
+	width: 346px;
+	height: 170px;
+}
+
+.cke_skin_office2003 .cke_dialog .cke_pastetext textarea
+{
+	width: 340px;
+	height: 170px;
+	resize: none;
+}
+
+.cke_skin_office2003 .cke_dialog iframe.cke_pasteframe
+{
+	width: 346px;
+	height: 130px;
+	background-color: white;
+	border: 1px solid black;
+}
+
 .cke_skin_office2003 .cke_dialog .cke_dark_background
 {
@@ -673,5 +697,4 @@
 {
 	cursor: pointer;
-	cursor: hand;
 }
 
@@ -705,5 +728,4 @@
 	display: inline;
 	cursor: pointer;
-	cursor: hand;
 	font-weight: bold;
 	position: relative;
@@ -714,4 +736,9 @@
 {
 	display: none;
+}
+
+.cke_skin_office2003 .cke_dialog_body label.cke_required
+{
+	font-weight: bold;
 }
 
Index: /CKEditor/branches/versions/3.3.x/_source/skins/office2003/elementspath.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/office2003/elementspath.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/office2003/elementspath.css	(revision 5805)
@@ -36,4 +36,5 @@
 	padding-right: 4px;
 	margin-bottom : 3px;
+	cursor: default;
 }
 
Index: /CKEditor/branches/versions/3.3.x/_source/skins/office2003/panel.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/office2003/panel.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/office2003/panel.css	(revision 5805)
@@ -6,5 +6,5 @@
 .cke_skin_office2003 .cke_panel
 {
-    border: 1px solid #8f8f73;
+   border: 1px solid #8f8f73;
 	background-color: #fff;
 
@@ -55,5 +55,5 @@
 	margin: 3px;
 	padding: 0px;
-    white-space: nowrap;
+   white-space: nowrap;
 }
 
@@ -71,5 +71,5 @@
 	text-decoration: none;
 	overflow: hidden;
-    text-overflow: ellipsis;
+   text-overflow: ellipsis;
 }
 
@@ -115,8 +115,8 @@
 .cke_panel_grouptitle
 {
-    font-size: 11px;
-    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+   font-size: 11px;
+   font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
 	font-weight: bold;
-    white-space: nowrap;
+   white-space: nowrap;
 	background-color: #dcdcdc;
 	color: #000;
@@ -148,6 +148,6 @@
 {
 	padding: 3px;
-    font-size: 11px;
-    font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
+   font-size: 11px;
+   font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
 }
 
@@ -163,5 +163,5 @@
 	width: 10px;
 	height: 10px;
-    border: #808080 1px solid;
+   border: #808080 1px solid;
 	float: left;
 }
Index: /CKEditor/branches/versions/3.3.x/_source/skins/office2003/reset.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/office2003/reset.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/office2003/reset.css	(revision 5805)
@@ -77,2 +77,8 @@
 	cursor: default;
 }
+
+.cke_skin_office2003 fieldset
+{
+	padding: 10px;
+	border: 2px groove #E0DFE3;
+}
Index: /CKEditor/branches/versions/3.3.x/_source/skins/office2003/richcombo.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/office2003/richcombo.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/office2003/richcombo.css	(revision 5805)
@@ -61,4 +61,5 @@
 	display: inline-block;
 	float: left;
+	cursor: default;
 
 	line-height: 24px;
@@ -109,4 +110,5 @@
 	display: inline-block;
 	vertical-align: top;
+	cursor: default;
 }
 
Index: /CKEditor/branches/versions/3.3.x/_source/skins/office2003/toolbar.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/office2003/toolbar.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/office2003/toolbar.css	(revision 5805)
@@ -306,4 +306,5 @@
 	height: 16px;
 	display: inline-block;
+	cursor: default;
 }
 
@@ -360,4 +361,5 @@
 	_background-image: url(images/sprites_ie6.png);
 	background-repeat: no-repeat;
+	cursor: default;
 }
 
Index: /CKEditor/branches/versions/3.3.x/_source/skins/v2/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/v2/dialog.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/v2/dialog.css	(revision 5805)
@@ -343,4 +343,8 @@
 	border: 1px solid #a0a0a0;
 	padding: 1px 0px;
+}
+
+.cke_skin_v2 .cke_browser_ie.cke_rtl div.cke_dialog_ui_input_text {
+	padding-right: 1px;
 }
 
@@ -610,5 +614,4 @@
 	border: outset 1px;
 	cursor: pointer;
-	cursor: hand;
 }
 
@@ -659,4 +662,25 @@
 }
 
+.cke_skin_v2 .cke_dialog .cke_pastetext
+{
+	width: 346px;
+	height: 170px;
+}
+
+.cke_skin_v2 .cke_dialog .cke_pastetext textarea
+{
+	width: 340px;
+	height: 170px;
+	resize: none;
+}
+
+.cke_skin_v2 .cke_dialog iframe.cke_pasteframe
+{
+	width: 346px;
+	height: 130px;
+	background-color: white;
+	border: 1px solid black;
+}
+
 .cke_skin_v2 .cke_dialog .cke_dark_background
 {
@@ -675,5 +699,4 @@
 {
 	cursor: pointer;
-	cursor: hand;
 }
 
@@ -707,5 +730,4 @@
 	display: inline;
 	cursor: pointer;
-	cursor: hand;
 	font-weight: bold;
 	position: relative;
@@ -716,4 +738,9 @@
 {
 	display: none;
+}
+
+.cke_skin_v2 .cke_dialog_body label.cke_required
+{
+	font-weight: bold;
 }
 
Index: /CKEditor/branches/versions/3.3.x/_source/skins/v2/elementspath.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/v2/elementspath.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/v2/elementspath.css	(revision 5805)
@@ -36,4 +36,5 @@
 	padding-right: 4px;
 	margin-bottom : 3px;
+	cursor: default;
 }
 
Index: /CKEditor/branches/versions/3.3.x/_source/skins/v2/panel.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/v2/panel.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/v2/panel.css	(revision 5805)
@@ -55,5 +55,5 @@
 	margin: 3px;
 	padding: 0px;
-    white-space: nowrap;
+   white-space: nowrap;
 }
 
@@ -71,5 +71,5 @@
 	text-decoration: none;
 	overflow: hidden;
-    text-overflow: ellipsis;
+   text-overflow: ellipsis;
 }
 
@@ -115,8 +115,8 @@
 .cke_panel_grouptitle
 {
-    font-size: 11px;
-    font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+   font-size: 11px;
+   font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
 	font-weight: bold;
-    white-space: nowrap;
+   white-space: nowrap;
 	background-color: #dcdcdc;
 	color: #000;
@@ -148,6 +148,6 @@
 {
 	padding: 3px;
-    font-size: 11px;
-    font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
+	font-size: 11px;
+	font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
 }
 
@@ -163,5 +163,5 @@
 	width: 10px;
 	height: 10px;
-    border: #808080 1px solid;
+   border: #808080 1px solid;
 	float: left;
 }
Index: /CKEditor/branches/versions/3.3.x/_source/skins/v2/reset.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/v2/reset.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/v2/reset.css	(revision 5805)
@@ -77,2 +77,8 @@
 	cursor: default;
 }
+
+.cke_skin_v2 fieldset
+{
+	padding: 10px;
+	border: 2px groove #E0DFE3;
+}
Index: /CKEditor/branches/versions/3.3.x/_source/skins/v2/richcombo.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/v2/richcombo.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/v2/richcombo.css	(revision 5805)
@@ -70,4 +70,5 @@
 	opacity: 0.70; /* Safari, Opera and Mozilla */
 	background-color: #f1f1e3;	/* Because of IE6+ClearType */
+	cursor: default;
 }
 
@@ -104,4 +105,5 @@
 	display: inline-block;
 	vertical-align: top;
+	cursor: default;
 }
 
Index: /CKEditor/branches/versions/3.3.x/_source/skins/v2/toolbar.css
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/skins/v2/toolbar.css	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/skins/v2/toolbar.css	(revision 5805)
@@ -279,4 +279,5 @@
 	height: 16px;
 	display: inline-block;
+	cursor: default;
 }
 
@@ -318,4 +319,5 @@
 	_background-image: url(images/sprites_ie6.png);
 	background-repeat: no-repeat;
+	cursor: default;
 }
 
Index: /CKEditor/branches/versions/3.3.x/_source/themes/default/theme.js
===================================================================
--- /CKEditor/branches/versions/3.3.x/_source/themes/default/theme.js	(revision 5804)
+++ /CKEditor/branches/versions/3.3.x/_source/themes/default/theme.js	(revision 5805)
@@ -234,26 +234,4 @@
 			editor.element.clearCustomData();
 
-			/*
-			 * IE BUG: Removing the editor DOM elements while the selection is inside
-			 * the editing area would break IE7/8's selection system. So we need to put
-			 * the selection back to the parent document without scrolling the window.
-			 * (#3812)
-			 */
-			if ( CKEDITOR.env.ie )
-			{
-				container.setStyle( 'display', 'none' );
-
-				var $range = document.body.createTextRange();
-				$range.moveToElementText( container.$ );
-				try
-				{
-					// Putting the selection to a display:none element - this will certainly
-					// fail. But! We've just put the selection document back to the parent
-					// document without scrolling the window!
-					$range.select();
-				}
-				catch ( e ) {}
-			}
-
 			if ( container )
 				container.remove();
@@ -267,4 +245,15 @@
 })() );
 
+/**
+ * Returns the DOM element that represents a theme space. The default theme defines
+ * three spaces, namely "top", "contents" and "bottom", representing the main
+ * blocks that compose the editor interface.
+ * @param {String} spaceName The space name.
+ * @returns {CKEDITOR.dom.element} The element that represents the space.
+ * @example
+ * // Hide the bottom space in the UI.
+ * var bottom = editor.getThemeSpace( 'bottom' );
+ * bottom.setStyle( 'display', 'none' );
+ */
 CKEDITOR.editor.prototype.getThemeSpace = function( spaceName )
 {
@@ -275,4 +264,24 @@
 };
 
+/**
+ * Resizes the editor interface.
+ * @param {Number|String} width The new width. It can be an pixels integer or a
+ *		CSS size value.
+ * @param {Number|String} height The new height. It can be an pixels integer or
+ *		a CSS size value.
+ * @param {Boolean} [isContentHeight] Indicates that the provided height is to
+ *		be applied to the editor contents space, not to the entire editor
+ *		interface. Defaults to false.
+ * @param {Boolean} [resizeInner] Indicates that the first inner interface
+ *		element must receive the size, not the outer element. The default theme
+ *		defines the interface inside a pair of span elements
+ *		(&lt;span&gt;&lt;span&gt;...&lt;/span&gt;&lt;/span&gt;). By default the
+ *		first span element receives the sizes. If this parameter is set to
+ *		true, the second span is sized instead.
+ * @example
+ * editor.resize( 900, 300 );
+ * @example
+ * editor.resize( '100%', 450, true );
+ */
 CKEDITOR.editor.prototype.resize = function( width, height, isContentHeight, resizeInner )
 {
@@ -305,4 +314,11 @@
 };
 
+/**
+ * Gets the element that can be freely used to check the editor size. This method
+ * is mainly used by the resize plugin, which adds a UI handle that can be used
+ * to resize the editor.
+ * @returns {CKEDITOR.dom.element} The resizable element.
+ * @example
+ */
 CKEDITOR.editor.prototype.getResizable = function()
 {
@@ -335,2 +351,9 @@
  * };
  */
+
+/**
+ * Fired after the editor instance is resized through
+ * the {@link CKEDITOR.editor.prototype.resize} method.
+ * @name CKEDITOR#resize
+ * @event
+ */
