Index: /CKEditor/branches/versions/3.2.x/CHANGES.html
===================================================================
--- /CKEditor/branches/versions/3.2.x/CHANGES.html	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/CHANGES.html	(revision 5121)
@@ -54,4 +54,6 @@
 		Fixed issues:</p>
 	<ul>
+		<li><a href="http://dev.fckeditor.net/ticket/4272">#4272</a> : Kama skin toolbar was broken in IE+RTL+quirks.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4987">#4987</a> : Changed the url which is called by the Browser Server button in Link tab of Image Properties dialog.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/5030">#5030</a> : Fixed CKEDITOR.timestamp wasn't added while loading skin.js.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4993">#4993</a> : Remove float value of image in case user selects 'not set'.</li>
@@ -67,4 +69,5 @@
 		<li><a href="http://dev.fckeditor.net/ticket/4731">#4731</a> : The clipboard plugin was missing a reference to the dialog plugin.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/5051">#5051</a> : The about plugin was missing a reference to the dialog plugin.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5146">#5146</a> : The wsc plugin was missing a reference to the dialog plugin.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4632">#4632</a> : The print command will now properly break on the insertion point of page break for printing.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4862">#4862</a> : Corrected English (United Kingdom) locale as en-gb.</li>
@@ -94,8 +97,23 @@
 		<li><a href="http://dev.fckeditor.net/ticket/5008">#5008</a> : Lock/Unlock ratio buttons in Image dialog has poor perception in HC mode.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/3980">#3980</a> : All labels in dialog now use &lt;label&gt; instead of &lt;div&gt;.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5005">#5005</a> : Fixed HTML errors in PHP samples.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5123">#5123</a> : Fixed broken XHTML in User Interface Languages sample.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4893">#4893</a> : Editor should understand table cell inline styles.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4611">#4611</a> : Selection around &lt;select&gt; in editor doesn't anymore cause error.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4886">#4886</a> : Extra BR tags were being created in the output HTML.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4933">#4933</a> : Empty tags with BR were being left in the DOM.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5127">#5127</a> : Remove dialog definition pages sometimes been error prone.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4767">#4767</a> : CKEditor does not work when ckeditor_source.js is loaded in the &lt;body&gt; .</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5062">#5062</a> : Security warning message occurs when loading wysiwyg area in IE6 under HTTPS.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5135">#5135</a> : The TAB key will now behave properly when in Source mode.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4988">#4988</a> : It wasn't possible to use forcePasteAsPlainText with Safari on Mac.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5095">#5095</a> : Safari on Mac deleted current selection when Edit menu was clicked.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5144">#5144</a> : Chrome could leave &lt;div id="cke_pastebin"&gt; elements after pasting.</li>
 		<li>Updated the following language files:<ul>
 			<li><a href="http://dev.fckeditor.net/ticket/5006">#5006</a> : Dutch;</li>
 			<li><a href="http://dev.fckeditor.net/ticket/5039">#5039</a> : Finnish;</li>
-			<li><a href="http://dev.fckeditor.net/ticket/5071">#5071</a> : Russian.</li>
+			<li><a href="http://dev.fckeditor.net/ticket/5148">#5148</a> : Hebrew;</li>
+			<li><a href="http://dev.fckeditor.net/ticket/5071">#5071</a> : Russian;</li>
+			<li><a href="http://dev.fckeditor.net/ticket/5147">#5147</a> : Spanish;</li>
 		</ul></li>
 	</ul>
Index: /CKEditor/branches/versions/3.2.x/_samples/php/advanced.php
===================================================================
--- /CKEditor/branches/versions/3.2.x/_samples/php/advanced.php	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_samples/php/advanced.php	(revision 5121)
@@ -75,4 +75,5 @@
 echo $CKEditor->editor("editor2", $initialValue, $config);
 ?>
+			<p>
 				<input type="submit" value="Submit"/>
 			</p>
Index: /CKEditor/branches/versions/3.2.x/_samples/php/events.php
===================================================================
--- /CKEditor/branches/versions/3.2.x/_samples/php/events.php	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_samples/php/events.php	(revision 5121)
@@ -112,4 +112,5 @@
 $CKEditor->editor("editor2", $initialValue, $config, $events);
 ?>
+			<p>
 				<input type="submit" value="Submit"/>
 			</p>
Index: /CKEditor/branches/versions/3.2.x/_samples/ui_languages.html
===================================================================
--- /CKEditor/branches/versions/3.2.x/_samples/ui_languages.html	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_samples/ui_languages.html	(revision 5121)
@@ -36,8 +36,7 @@
 			<label for="editor1">
 				Available languages (<span id="count"> </span>languages!):</label><br />
-			<select disabled="disabled" id="languages" onchange="createEditor( this.value );">
 				<script type="text/javascript">
 				//<![CDATA[
-
+					document.write( '<select disabled="disabled" id="languages" onchange="createEditor( this.value );">' );
 					// Get the language list from the _languages.js file.
 					for ( var i = 0 ; i < window.CKEDITOR_LANGS.length ; i++ )
@@ -48,8 +47,7 @@
 							'</option>' );
 					}
-
+					document.write( '</select>' );
 				//]]>
 				</script>
-			</select>
 			<br />
 			<span style="color: #888888">(You may see strange characters if your system doesn't
Index: /CKEditor/branches/versions/3.2.x/_source/core/dom/range.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/core/dom/range.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/core/dom/range.js	(revision 5121)
@@ -745,7 +745,5 @@
 
 					// Check all necessity of updating the end boundary.
-					if( collapsed )
-						this.collapse( true );
-					else if ( this.startContainer.equals( this.endContainer ) )
+					if ( this.startContainer.equals( this.endContainer ) )
 						this.setEnd( nextText, this.endOffset - this.startOffset );
 					else if ( startContainer.equals( this.endContainer ) )
@@ -756,5 +754,8 @@
 
 				if ( collapsed )
+				{
+					this.collapse( true );
 					return;
+				}
 			}
 
Index: /CKEditor/branches/versions/3.2.x/_source/core/htmlparser/basicwriter.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/core/htmlparser/basicwriter.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/core/htmlparser/basicwriter.js	(revision 5121)
@@ -63,5 +63,5 @@
 			// Browsers don't always escape quote in attribute values. (#4683)
 			if ( typeof attValue == 'string' )
-				attValue = attValue.replace( /"/g, '&quot;' )
+				attValue = attValue.replace( /"/g, '&quot;' );
 
 			this._.output.push( ' ', attName, '="', attValue, '"' );
Index: /CKEditor/branches/versions/3.2.x/_source/core/htmlparser/fragment.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/core/htmlparser/fragment.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/core/htmlparser/fragment.js	(revision 5121)
@@ -65,4 +65,5 @@
 			fragment = new CKEDITOR.htmlParser.fragment(),
 			pendingInline = [],
+			pendingBRs = [],
 			currentNode = fragment,
 		    // Indicate we're inside a <pre> element, spaces should be touched differently.
@@ -72,4 +73,6 @@
 		function checkPending( newTagName )
 		{
+			var pendingBRsSent;
+
 			if ( pendingInline.length > 0 )
 			{
@@ -83,4 +86,10 @@
 					if ( ( !currentDtd || currentDtd[ pendingName ] ) && ( !newTagName || !pendingDtd || pendingDtd[ newTagName ] || !CKEDITOR.dtd[ newTagName ] ) )
 					{
+						if ( !pendingBRsSent )
+						{
+							sendPendingBRs();
+							pendingBRsSent = 1;
+						}
+
 						// Get a clone for the pending element.
 						pendingElement = pendingElement.clone();
@@ -98,4 +107,10 @@
 				}
 			}
+		}
+
+		function sendPendingBRs()
+		{
+			while ( pendingBRs.length )
+				currentNode.add( pendingBRs.shift() );
 		}
 
@@ -182,4 +197,10 @@
 			}
 
+			if ( tagName == 'br' )
+			{
+				pendingBRs.push( element );
+				return;
+			}
+
 			var currentName = currentNode.name;
 
@@ -309,6 +330,9 @@
 				currentNode = candidate;
 
-				if( currentNode.name == 'pre' )
+				if ( currentNode.name == 'pre' )
 					inPre = false;
+
+				if ( candidate._.isBlockLike )
+					sendPendingBRs();
 
 				addElement( candidate, candidate.parent );
@@ -322,5 +346,5 @@
 			}
 
-			if( tagName == 'body' )
+			if ( tagName == 'body' )
 				fixForBody = false;
 		};
@@ -337,4 +361,5 @@
 			}
 
+			sendPendingBRs();
 			checkPending();
 
@@ -366,4 +391,6 @@
 		// Parse it.
 		parser.parse( fragmentHtml );
+
+		sendPendingBRs();
 
 		// Close all pending nodes.
Index: /CKEditor/branches/versions/3.2.x/_source/core/loader.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/core/loader.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/core/loader.js	(revision 5121)
@@ -162,6 +162,6 @@
 				// We must guarantee the execution order of the scripts, so we
 				// need to load them one by one. (#4145)
-				// The followin if/else block has been taken from the scriptloader core code.
-				if ( CKEDITOR.env.ie )
+				// The following if/else block has been taken from the scriptloader core code.
+				if ( typeof(script.onreadystatechange) !== "undefined" )
 				{
 					/** @ignore */
@@ -191,5 +191,5 @@
 			/**
 			 * Loads a specific script, including its dependencies. This is not a
-			 * synchronous loading, which means that the code the be loaded will
+			 * synchronous loading, which means that the code to be loaded will
 			 * not necessarily be available after this call.
 			 * @example
@@ -218,5 +218,8 @@
 
 				// Append the <script> element to the DOM.
-				if ( document.body )
+				// If the page is fully loaded, we can't use document.write
+				// but if the script is run while the body is loading then it's safe to use it
+				// Unfortunately, Firefox <3.6 doesn't support document.readyState, so it won't get this improvement
+				if ( document.body && (!document.readyState || document.readyState == 'complete') )
 				{
 					pendingLoad.push( scriptName );
Index: /CKEditor/branches/versions/3.2.x/_source/lang/_translationstatus.txt
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/lang/_translationstatus.txt	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/lang/_translationstatus.txt	(revision 5121)
@@ -17,5 +17,5 @@
 en-gb.js   Found: 385 Missing: 111
 eo.js      Found: 275 Missing: 221
-es.js      Found: 420 Missing: 76
+es.js      Found: 477 Missing: 19
 et.js      Found: 316 Missing: 180
 eu.js      Found: 420 Missing: 76
@@ -27,5 +27,5 @@
 gl.js      Found: 298 Missing: 198
 gu.js      Found: 316 Missing: 180
-he.js      Found: 429 Missing: 67
+he.js      Found: 483 Missing: 13
 hi.js      Found: 317 Missing: 179
 hr.js      Found: 420 Missing: 76
Index: /CKEditor/branches/versions/3.2.x/_source/lang/es.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/lang/es.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/lang/es.js	(revision 5121)
@@ -87,5 +87,5 @@
 		advisoryTitle	: 'Título',
 		cssStyle		: 'Estilo',
-		ok				: 'OK',
+		ok				: 'Aceptar',
 		cancel			: 'Cancelar',
 		close : 'Close', // MISSING
@@ -151,5 +151,5 @@
 		acccessKey		: 'Clave de Acceso',
 		name			: 'Nombre',
-		langCode		: 'Orientación',
+		langCode		: 'Código idioma',
 		tabIndex		: 'Indice de tabulación',
 		advisoryTitle	: 'Título',
@@ -264,5 +264,5 @@
 			invalidRowSpan	: 'La expansión de filas debe ser un número entero.',
 			invalidColSpan	: 'La expansión de columnas debe ser un número entero.',
-			chooseColor : 'Choose' // MISSING
+			chooseColor : 'Elegir'
 		},
 
@@ -396,5 +396,5 @@
 		button2Img	: '¿Desea convertir el botón de imagen en una simple imagen?',
 		img2Button	: '¿Desea convertir la imagen en un botón de imagen?',
-		urlMissing : 'Image source URL is missing.', // MISSING
+		urlMissing : 'Debe indicar la URL de la imagen.',
 		validateWidth : 'Width must be a whole number.', // MISSING
 		validateHeight : 'Height must be a whole number.', // MISSING
@@ -443,5 +443,5 @@
 		windowModeTransparent	 : 'Transparente',
 		windowMode	: 'WindowMode',
-		flashvars	: 'FlashVars',
+		flashvars	: 'Opciones',
 		bgcolor	: 'Color de Fondo',
 		width	: 'Anchura',
@@ -511,5 +511,5 @@
 		cutError	: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado. Por favor use el teclado (Ctrl+X).',
 		copyError	: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado. Por favor use el teclado (Ctrl+C).',
-		pasteMsg	: 'Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl+V</STRONG>); luego presione <STRONG>OK</STRONG>.',
+		pasteMsg	: 'Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl+V</STRONG>); luego presione <STRONG>Aceptar</STRONG>.',
 		securityMsg	: 'Debido a la configuración de seguridad de su navegador, el editor no tiene acceso al portapapeles. Es necesario que lo pegue de nuevo en esta ventana.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -521,5 +521,5 @@
 		toolbar : 'Pegar desde Word',
 		title : 'Pegar desde Word',
-		error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
+		error : 'No ha sido posible limpiar los datos debido a un error interno'
 	},
 
@@ -569,17 +569,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				: 'Crear contenedor DIV',
+		toolbar				: 'Crear contenedor DIV',
+		cssClassInputLabel	: 'Clase de hoja de estilos',
+		styleSelectLabel	: 'Estilo',
+		IdInputLabel		: 'Id',
+		languageCodeInputLabel	: ' Codigo de idioma',
+		inlineStyleInputLabel	: 'Estilo',
+		advisoryTitleInputLabel	: 'Título',
+		langDirLabel		: 'Orientación',
+		langDirLTRLabel		: 'Izquierda a Derecha (LTR)',
+		langDirRTLLabel		: 'Derecha a Izquierda (RTL)',
+		edit				: 'Editar Div',
+		remove				: 'Quitar Div'
   	},
 
@@ -609,44 +609,44 @@
 	colors :
 	{
-		'000' : 'Black', // MISSING
-		'800000' : 'Maroon', // MISSING
+		'000' : 'Negro',
+		'800000' : 'Granate',
 		'8B4513' : 'Saddle Brown', // MISSING
-		'2F4F4F' : 'Dark Slate Gray', // MISSING
-		'008080' : 'Teal', // MISSING
-		'000080' : 'Navy', // MISSING
-		'4B0082' : 'Indigo', // MISSING
-		'696969' : 'Dim Gray', // MISSING
+		'2F4F4F' : 'Pizarra Oscuro',
+		'008080' : 'Azul verdoso',
+		'000080' : 'Azul marino',
+		'4B0082' : 'Añil',
+		'696969' : 'Gris medio',
 		'B22222' : 'Fire Brick', // MISSING
-		'A52A2A' : 'Brown', // MISSING
+		'A52A2A' : 'Marrón',
 		'DAA520' : 'Golden Rod', // MISSING
-		'006400' : 'Dark Green', // MISSING
-		'40E0D0' : 'Turquoise', // MISSING
+		'006400' : 'Verde oscuro',
+		'40E0D0' : 'Turquesa',
 		'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
+		'800080' : 'Púrpura',
+		'808080' : 'Gris',
+		'F00' : 'Rojo',
+		'FF8C00' : 'Naranja oscuro',
+		'FFD700' : 'Oro',
+		'008000' : 'Verde',
+		'0FF' : 'Cian',
+		'00F' : 'Azul',
+		'EE82EE' : 'Violeta',
+		'A9A9A9' : 'Gris oscuro',
+		'FFA07A' : 'Salmón claro',
+		'FFA500' : 'Naranja',
+		'FFFF00' : 'Amarillo',
+		'00FF00' : 'Lima',
+		'AFEEEE' : 'Turquesa claro',
+		'ADD8E6' : 'Azul claro',
+		'DDA0DD' : 'Ciruela',
+		'D3D3D3' : 'Gris claro',
 		'FFF0F5' : 'Lavender Blush', // MISSING
-		'FAEBD7' : 'Antique White', // MISSING
-		'FFFFE0' : 'Light Yellow', // MISSING
-		'F0FFF0' : 'Honeydew', // MISSING
-		'F0FFFF' : 'Azure', // MISSING
+		'FAEBD7' : 'Blanco antiguo',
+		'FFFFE0' : 'Amarillo claro',
+		'F0FFF0' : 'Miel',
+		'F0FFFF' : 'Azul celeste',
 		'F0F8FF' : 'Alice Blue', // MISSING
-		'E6E6FA' : 'Lavender', // MISSING
-		'FFF' : 'White' // MISSING
+		'E6E6FA' : 'LAvanda',
+		'FFF' : 'Blanco'
 	},
 
@@ -654,8 +654,8 @@
 	{
 		title : 'Comprobar Ortografía Mientras Escribe',
-		enable : 'Activar COME',
-		disable : 'Desactivar COME',
-		about : 'Acerca de COME',
-		toggle : 'Cambiar COME',
+		enable : 'Activar Corrector',
+		disable : 'Desactivar Corrector',
+		about : 'Acerca de Corrector',
+		toggle : 'Cambiar Corrector',
 		options : 'Opciones',
 		langs : 'Idiomas',
@@ -680,5 +680,5 @@
 
 	maximize : 'Maximizar',
-	minimize : 'Minimize', // MISSING
+	minimize : 'Minimizar',
 
 	fakeobjects :
@@ -694,11 +694,11 @@
 	colordialog :
 	{
-		title : 'Select color', // MISSING
-		highlight : 'Highlight', // MISSING
-		selected : 'Selected', // MISSING
-		clear : 'Clear' // MISSING
-	},
-
-	toolbarCollapse : 'Collapse Toolbar', // MISSING
-	toolbarExpand : 'Expand Toolbar' // MISSING
+		title : 'Elegir color',
+		highlight : 'Muestra',
+		selected : 'Elegido',
+		clear : 'Borrar'
+	},
+
+	toolbarCollapse : 'Contraer barra de herramientas',
+	toolbarExpand : 'Expandir barra de herramientas'
 };
Index: /CKEditor/branches/versions/3.2.x/_source/lang/he.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/lang/he.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/lang/he.js	(revision 5121)
@@ -77,5 +77,5 @@
 		imageButton		: 'כפתור תמונה',
 		notSet			: '<לא נקבע>',
-		id				: 'זיהוי (Id)',
+		id				: 'זיהוי (ID)',
 		name			: 'שם',
 		langDir			: 'כיוון שפה',
@@ -120,5 +120,5 @@
 		type		: 'סוג קישור',
 		toAnchor	: 'עוגן בעמוד זה',
-		toEmail		: 'דוא\'\'ל',
+		toEmail		: 'דוא"ל',
 		target		: 'מטרה',
 		targetNotSet	: '<לא נקבע>',
@@ -144,5 +144,5 @@
 		popupHeight		: 'גובה',
 		popupTop		: 'מיקום צד עליון',
-		id				: 'זיהוי (Id)',
+		id				: 'זיהוי (ID)',
 		langDir			: 'כיוון שפה',
 		langDirNotSet	: '<לא נקבע>',
@@ -159,12 +159,12 @@
 		styles			: 'סגנון',
 		selectAnchor	: 'בחירת עוגן',
-		anchorName		: 'עפ\'\'י שם העוגן',
-		anchorId		: 'עפ\'\'י זיהוי (Id) הרכיב',
-		emailAddress	: 'כתובת הדוא\'\'ל',
+		anchorName		: 'עפ"י שם העוגן',
+		anchorId		: 'עפ"י זיהוי (ID) האלמנט',
+		emailAddress	: 'כתובת הדוא"ל',
 		emailSubject	: 'נושא ההודעה',
 		emailBody		: 'גוף ההודעה',
 		noAnchors		: '(אין עוגנים זמינים בדף)',
 		noUrl			: 'יש להקליד את כתובת הקישור (URL)',
-		noEmail			: 'יש להקליד את כתובת הדוא\'\'ל'
+		noEmail			: 'יש להקליד את כתובת הדוא"ל'
 	},
 
@@ -176,5 +176,5 @@
 		title		: 'מאפייני נקודת עיגון',
 		name		: 'שם לנקודת עיגון',
-		errorName	: 'יש להזין שם לנקודת עיגון'
+		errorName	: 'יש להקליד שם לנקודת עיגון'
 	},
 
@@ -218,5 +218,5 @@
 		cellPad		: 'ריפוד תא',
 		caption		: 'כיתוב',
-		summary		: 'סיכום',
+		summary		: 'תקציר',
 		headers		: 'כותרות',
 		headersNone		: 'אין',
@@ -241,5 +241,5 @@
 			mergeRight		: 'מזג ימינה',
 			mergeDown		: 'מזג למטה',
-			splitHorizontal	: 'פיצלו תא אופקית',
+			splitHorizontal	: 'פיצול תא אופקית',
 			splitVertical	: 'פיצול תא אנכית',
 			title			: 'תכונות התא',
@@ -354,6 +354,6 @@
 		name		: 'שם',
 		value		: 'ערך',
-		charWidth	: 'רוחב באותיות',
-		maxChars	: 'מקסימות אותיות',
+		charWidth	: 'רוחב לפי תווים',
+		maxChars	: 'מקסימום תווים',
 		type		: 'סוג',
 		typeText	: 'טקסט',
@@ -511,5 +511,5 @@
 		cutError	: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+X).',
 		copyError	: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+C).',
-		pasteMsg	: 'נא להדביק בתוך הקופסה באמצעות (<STRONG>Ctrl+V</STRONG>) וללחוץ על <STRONG>אישור</STRONG>.',
+		pasteMsg	: 'נא להדביק בתוך הקופסה באמצעות (<b>Ctrl+V</b>) וללחוץ על <b>אישור</b>.',
 		securityMsg	: 'עקב הגדרות אבטחה בדפדפן, לא ניתן לגשת אל לוח הגזירים (Clipboard) בצורה ישירה. נא להדביק שוב בחלון זה.',
 		pasteArea	: 'Paste Area' // MISSING
@@ -521,5 +521,5 @@
 		toolbar : 'הדבקה מ-Word',
 		title : 'הדבקה מ-Word',
-		error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
+		error : 'לא ניתן היה לנקות את המידע בשל תקלה פנימית.'
 	},
 
@@ -569,17 +569,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)'
   	},
 
@@ -609,44 +609,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' : 'לבן'
 	},
 
@@ -679,6 +679,6 @@
 	},
 
-	maximize : 'הגדל למקסימום',
-	minimize : 'הקטן למינימום',
+	maximize : 'הגדלה למקסימום',
+	minimize : 'הקטנה למינימום',
 
 	fakeobjects :
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/clipboard/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/clipboard/plugin.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/clipboard/plugin.js	(revision 5121)
@@ -164,4 +164,17 @@
 		if ( CKEDITOR.env.ie && doc.getById( 'cke_pastebin' ) )
 			return;
+
+		// If the browser supports it, get the data directly
+		if (mode == 'text' && evt.data && evt.data.$.clipboardData)
+		{
+			// evt.data.$.clipboardData.types contains all the flavours in Mac's Safari, but not on windows.
+			var plain = evt.data.$.clipboardData.getData( 'text/plain' );
+			if (plain)
+			{
+				evt.data.preventDefault();
+				callback( plain );
+				return;
+			}
+		}
 
 		var sel = this.getSelection(),
@@ -306,5 +319,5 @@
 				{
 					var body = editor.document.getBody();
-					body.on( ( mode == 'text' && CKEDITOR.env.ie ) ? 'paste' : 'beforepaste',
+					body.on( ( (mode == 'text' && CKEDITOR.env.ie) || CKEDITOR.env.webkit ) ? 'paste' : 'beforepaste',
 						function( evt )
 						{
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/dialog/plugin.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/dialog/plugin.js	(revision 5121)
@@ -1032,5 +1032,6 @@
 		getContentElement : function( pageId, elementId )
 		{
-			return this._.contents[pageId][elementId];
+			var page = this._.contents[ pageId ];
+			return page && page[ elementId ];
 		},
 
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/dialogui/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/dialogui/plugin.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/dialogui/plugin.js	(revision 5121)
@@ -1039,5 +1039,5 @@
 				setValue : function( value )
 				{
-					value = ( value != null ) ? value : '';
+					!value && ( value = '' );
 					return CKEDITOR.ui.dialog.uiElement.prototype.setValue.call( this, value );
 				},
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/filebrowser/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/filebrowser/plugin.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/filebrowser/plugin.js	(revision 5121)
@@ -399,2 +399,81 @@
 
 } )();
+
+/**
+ * The location of an external file browser, that should be launched when "Browse Server" button is pressed.
+ * If configured, the "Browse Server" button will appear in Link, Image and Flash dialogs.
+ * @see The <a href="http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader)">File Browser/Uploader</a> documentation.
+ * @name CKEDITOR.config.filebrowserBrowseUrl
+ * @since 3.0
+ * @type String
+ * @default '' (empty string = disabled)
+ * @example
+ * config.filebrowserBrowseUrl = '/browser/browse.php';
+ */
+
+/**
+ * The location of a script that handles file uploads.
+ * If set, the "Upload" tab will appear in "Link", "Image" and "Flash" dialogs.
+ * @name CKEDITOR.config.filebrowserUploadUrl
+ * @see The <a href="http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader)">File Browser/Uploader</a> documentation.
+ * @since 3.0
+ * @type String
+ * @default '' (empty string = disabled)
+ * @example
+ * config.filebrowserUploadUrl = '/uploader/upload.php';
+ */
+
+/**
+ * The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Image dialog.
+ * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserBrowseUrl}.
+ * @name CKEDITOR.config.filebrowserImageBrowseUrl
+ * @since 3.0
+ * @type String
+ * @default '' (empty string = disabled)
+ * @example
+ * config.filebrowserImageBrowseUrl = '/browser/browse.php?type=Images';
+ */
+
+/**
+ * The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Flash dialog.
+ * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserBrowseUrl}.
+ * @name CKEDITOR.config.filebrowserFlashBrowseUrl
+ * @since 3.0
+ * @type String
+ * @default '' (empty string = disabled)
+ * @example
+ * config.filebrowserFlashBrowseUrl = '/browser/browse.php?type=Flash';
+ */
+
+/**
+ * The location of a script that handles file uploads in the Image dialog.
+ * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserUploadUrl}.
+ * @name CKEDITOR.config.filebrowserImageUploadUrl
+ * @since 3.0
+ * @type String
+ * @default '' (empty string = disabled)
+ * @example
+ * config.filebrowserImageUploadUrl = '/uploader/upload.php?type=Images';
+ */
+
+/**
+ * The location of a script that handles file uploads in the Flash dialog.
+ * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserUploadUrl}.
+ * @name CKEDITOR.config.filebrowserFlashUploadUrl
+ * @since 3.0
+ * @type String
+ * @default '' (empty string = disabled)
+ * @example
+ * config.filebrowserFlashUploadUrl = '/uploader/upload.php?type=Flash';
+ */
+
+/**
+ * The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Link tab of Image dialog.
+ * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserBrowseUrl}.
+ * @name CKEDITOR.config.filebrowserImageBrowseLinkUrl
+ * @since 3.2
+ * @type String
+ * @default '' (empty string = disabled)
+ * @example
+ * config.filebrowserImageBrowseLinkUrl = '/browser/browse.php';
+ */
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/floatpanel/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/floatpanel/plugin.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/floatpanel/plugin.js	(revision 5121)
@@ -223,5 +223,5 @@
 
 								// IE doesn't compute the scrollWidth if a filter is applied previously
-								block.element.addClass( 'cke_frameLoaded')
+								block.element.addClass( 'cke_frameLoaded' );
 
 								var height = block.element.$.scrollHeight;
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/htmlwriter/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/htmlwriter/plugin.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/htmlwriter/plugin.js	(revision 5121)
@@ -177,5 +177,5 @@
 				this.forceSimpleAmpersand && ( attValue = attValue.replace( /&amp;/g, '&' ) );
 				// Browsers don't always escape quote in attribute values. (#4683)
-				attValue = attValue.replace( /"/g, '&quot;' )
+				attValue = attValue.replace( /"/g, '&quot;' );
 			}
 
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/image/dialogs/image.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/image/dialogs/image.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/image/dialogs/image.js	(revision 5121)
@@ -805,5 +805,5 @@
 															borderStyle = borderStyle && borderStyle.match( /^(\d+px)(?: \1 \1 \1)?$/ );
 															value = borderStyle && parseInt( borderStyle[ 1 ], 10 );
-															isNaN ( parseInt( value ) ) && ( value = element.getAttribute( 'border' ) );
+															isNaN ( parseInt( value, 10 ) ) && ( value = element.getAttribute( 'border' ) );
 															this.setValue( value );
 														}
@@ -870,5 +870,5 @@
 
 															value = ( marginLeftPx == marginRightPx ) && marginLeftPx;
-															isNaN( parseInt( value ) ) && ( value = element.getAttribute( 'hspace' ) );
+															isNaN( parseInt( value, 10 ) ) && ( value = element.getAttribute( 'hspace' ) );
 
 															this.setValue( value );
@@ -934,5 +934,5 @@
 
 															value = ( marginTopPx == marginBottomPx ) && marginTopPx;
-															isNaN ( parseInt( value ) ) && ( value = element.getAttribute( 'vspace' ) );
+															isNaN ( parseInt( value, 10 ) ) && ( value = element.getAttribute( 'vspace' ) );
 															this.setValue( value );
 														}
@@ -1106,5 +1106,10 @@
 							type : 'button',
 							id : 'browse',
-							filebrowser : 'Link:txtUrl',
+							filebrowser : 
+							{
+								action : 'Browse',
+								target: 'Link:txtUrl',
+								url: editor.config.filebrowserImageBrowseLinkUrl || editor.config.filebrowserBrowseUrl
+							},
 							style : 'float:right',
 							hidden : true,
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/link/dialogs/link.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/link/dialogs/link.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/link/dialogs/link.js	(revision 5121)
@@ -101,7 +101,7 @@
 			retval = {};
 
-		if( javascriptMatch = href.match( javascriptProtocolRegex ) )
+		if ( ( javascriptMatch = href.match( javascriptProtocolRegex ) ) )
 		{
-			if( emailProtection == 'encode' )
+			if ( emailProtection == 'encode' )
 			{
 				href = href.replace( encodedEmailLinkRegex,
@@ -111,8 +111,8 @@
 							       String.fromCharCode.apply( String, protectedAddress.split( ',' ) ) +
 							       ( rest && unescapeSingleQuote( rest ) );
-						} );
+						});
 			}
 			// Protected email link as function call.
-			else if( emailProtection )
+			else if ( emailProtection )
 			{
 				href.replace( functionCallProtectedEmailLinkRegex, function( match, funcName, funcArgs )
@@ -151,5 +151,5 @@
 			}
 			// Protected email link as encoded string.
-			else if ( emailMatch = href.match( emailRegex ) )
+			else if ( ( emailMatch = href.match( emailRegex ) ) )
 			{
 				var subjectMatch = href.match( emailSubjectRegex ),
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/selection/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/selection/plugin.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/selection/plugin.js	(revision 5121)
@@ -142,7 +142,15 @@
 								// IE before version 8 will leave cursor blinking inside the document after
 								// editor blurred unless we clean up the selection. (#4716)
-								var env = CKEDITOR.env;
-								if( env.ie && env.version < 8 )
-									editor.document.$.selection.empty();
+								if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
+								{
+									// IE stack overflows when we're doing so inside table. (#5114)   
+									var parent =
+										savedRange
+										&& savedRange.parentElement
+										&& savedRange.parentElement();
+
+									if( !( parent && parent.tagName.toLowerCase() in CKEDITOR.dtd.$tableContent ) )
+										editor.document.$.selection.empty();
+								}
 							});
 
@@ -476,8 +484,8 @@
 								// When selection stay at the side of certain self-closing elements, e.g. BR,
 								// our comparison will never shows an equality. (#4824)
-								else if ( comparisonStart == 0
+								else if ( !comparisonStart
 									|| comparisonEnd == 1 && comparisonStart == -1 )
 									return { container : parent, offset : i };
-								else if( comparisonEnd == 0 )
+								else if ( !comparisonEnd )
 									return { container : parent, offset : i + 1 };
 
@@ -499,6 +507,15 @@
 						var distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
 
-						while ( distance > 0 )
-							distance -= siblings[ --i ].nodeValue.length;
+						try
+						{
+							while ( distance > 0 )
+								distance -= siblings[ --i ].nodeValue.length;
+						}
+						// Measurement in IE could be somtimes wrong because of <select> element. (#4611)
+						catch( e )
+						{
+							distance = 0;
+						}
+
 
 						if ( distance === 0 )
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/tab/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/tab/plugin.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/tab/plugin.js	(revision 5121)
@@ -6,4 +6,10 @@
 (function()
 {
+	var meta =
+	{
+		editorFocus : false,
+		modes : { wysiwyg:1, source:1 }
+	};
+
 	var blurCommand =
 		{
@@ -40,5 +46,5 @@
 
 			// Register the "tab" and "shiftTab" commands.
-			editor.addCommand( 'tab',
+			editor.addCommand( 'tab', CKEDITOR.tools.extend(
 				{
 					exec : function( editor )
@@ -62,7 +68,7 @@
 						return true;
 					}
-				});
-
-			editor.addCommand( 'shiftTab',
+				}, meta ) );
+
+			editor.addCommand( 'shiftTab', CKEDITOR.tools.extend(
 				{
 					exec : function( editor )
@@ -75,8 +81,8 @@
 						return true;
 					}
-				});
-
-			editor.addCommand( 'blur', blurCommand );
-			editor.addCommand( 'blurBack', blurBackCommand );
+				}, meta ) );
+
+			editor.addCommand( 'blur', CKEDITOR.tools.extend( blurCommand, meta ) );
+			editor.addCommand( 'blurBack', CKEDITOR.tools.extend( blurBackCommand, meta ) );
 		}
 	});
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/tabletools/dialogs/tableCell.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/tabletools/dialogs/tableCell.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/tabletools/dialogs/tableCell.js	(revision 5121)
@@ -117,17 +117,23 @@
 													},
 
-													setup : function( selectedCell )
-													{
-														var widthMatch = widthPattern.exec( selectedCell.$.style.width );
-														if ( widthMatch )
-															this.setValue( widthMatch[1] );
-													},
-													commit : function( selectedCell )
-													{
-														var unit = this.getDialog().getValueOf( 'info', 'widthType' );
-														if ( this.getValue() !== '' )
-															selectedCell.$.style.width = this.getValue() + unit;
+													setup : function( element )
+													{
+														var widthAttr = parseInt( element.getAttribute( 'width' ), 10 ),
+																widthStyle = parseInt( element.getStyle( 'width' ), 10 );
+
+														!isNaN( widthAttr ) && this.setValue( widthAttr );
+														!isNaN( widthStyle ) && this.setValue( widthStyle );
+													},
+													commit : function( element )
+													{
+														var value = parseInt( this.getValue(), 10 ),
+																unit = this.getDialog().getValueOf( 'info', 'widthType' );
+
+														if ( !isNaN( value ) )
+															element.setStyle( 'width', value + unit );
 														else
-															selectedCell.$.style.width = '';
+															element.removeStyle( 'width' );
+
+														element.removeAttribute( 'width' );
 													},
 													'default' : ''
@@ -180,16 +186,22 @@
 													},
 
-													setup : function( selectedCell )
-													{
-														var heightMatch = heightPattern.exec( selectedCell.$.style.height );
-														if ( heightMatch )
-															this.setValue( heightMatch[1] );
-													},
-													commit : function( selectedCell )
-													{
-														if ( this.getValue() !== '' )
-															selectedCell.$.style.height = this.getValue() + 'px';
+													setup : function( element )
+													{
+														var heightAttr = parseInt( element.getAttribute( 'height' ), 10 ),
+																heightStyle = parseInt( element.getStyle( 'height' ), 10 );
+
+														!isNaN( heightAttr ) && this.setValue( heightAttr );
+														!isNaN( heightStyle ) && this.setValue( heightStyle );
+													},
+													commit : function( element )
+													{
+														var value = parseInt( this.getValue(), 10 );
+
+														if ( !isNaN( value ) )
+															element.setStyle( 'height', CKEDITOR.tools.cssLength( value ) );
 														else
-															selectedCell.$.style.height = '';
+															element.removeStyle( 'height' );
+
+														element.removeAttribute( 'height' );
 													}
 												},
@@ -214,15 +226,20 @@
 												[ langCell.no, 'no' ]
 											],
-											setup : function( selectedCell )
-											{
-												if ( selectedCell.getAttribute( 'noWrap' ) )
+											setup : function( element )
+											{
+												var wordWrapAttr = element.getAttribute( 'noWrap' ),
+														wordWrapStyle = element.getStyle( 'white-space' );
+
+												if ( wordWrapStyle == 'nowrap' || wordWrapAttr )
 													this.setValue( 'no' );
 											},
-											commit : function( selectedCell )
+											commit : function( element )
 											{
 												if ( this.getValue() == 'no' )
-													selectedCell.setAttribute( 'noWrap', 'nowrap' );
+													element.setStyle( 'white-space', 'nowrap' );
 												else
-													selectedCell.removeAttribute( 'noWrap' );
+													element.removeStyle( 'white-space' );
+
+												element.removeAttribute( 'noWrap' );
 											}
 										},
@@ -242,14 +259,21 @@
 												[ langTable.alignRight, 'right' ]
 											],
-											setup : function( selectedCell )
-											{
-												this.setValue( selectedCell.getAttribute( 'align' ) || '' );
+											setup : function( element )
+											{
+												var alignAttr = element.getAttribute( 'align' ),
+														textAlignStyle = element.getStyle( 'text-align');
+
+												this.setValue(  textAlignStyle || alignAttr );
 											},
 											commit : function( selectedCell )
 											{
-												if ( this.getValue() )
-													selectedCell.setAttribute( 'align', this.getValue() );
+												var value = this.getValue();
+
+												if ( value )
+													selectedCell.setStyle( 'text-align', value );
 												else
-													selectedCell.removeAttribute( 'align' );
+													selectedCell.removeStyle( 'text-align' );
+
+												selectedCell.removeAttribute( 'align' );
 											}
 										},
@@ -269,14 +293,33 @@
 												[ langCell.alignBaseline, 'baseline' ]
 											],
-											setup : function( selectedCell )
-											{
-												this.setValue( selectedCell.getAttribute( 'vAlign' ) || '' );
+											setup : function( element )
+											{
+												var vAlignAttr = element.getAttribute( 'vAlign' ),
+														vAlignStyle = element.getStyle( 'vertical-align' );
+
+												switch( vAlignStyle )
+												{
+													// Ignore all other unrelated style values..
+													case 'top':
+													case 'middle':
+													case 'bottom':
+													case 'baseline':
+														break;
+													default:
+														vAlignStyle = '';
+												}
+
+												this.setValue( vAlignStyle || vAlignAttr  );
 											},
-											commit : function( selectedCell )
-											{
-												if ( this.getValue() )
-													selectedCell.setAttribute( 'vAlign', this.getValue() );
+											commit : function( element )
+											{
+												var value = this.getValue();
+
+												if ( value )
+													element.setStyle( 'vertical-align', value );
 												else
-													selectedCell.removeAttribute( 'vAlign' );
+													element.removeStyle( 'vertical-align' );
+
+												element.removeAttribute( 'vAlign' );
 											}
 										}
@@ -321,9 +364,12 @@
 											setup : function( selectedCell )
 											{
-												this.setValue( selectedCell.getAttribute( 'rowSpan' ) || '' );
+												var attrVal = parseInt( selectedCell.getAttribute( 'rowSpan' ), 10 );
+												if( attrVal && attrVal  != 1 )
+												 	this.setValue(  attrVal );
 											},
 											commit : function( selectedCell )
 											{
-												if ( this.getValue() )
+												var value = parseInt( this.getValue(), 10 );
+												if ( value && value != 1 )
 													selectedCell.setAttribute( 'rowSpan', this.getValue() );
 												else
@@ -339,11 +385,14 @@
 											'default' : '',
 											validate : validate.integer( langCell.invalidColSpan ),
-											setup : function( selectedCell )
-											{
-												this.setValue( selectedCell.getAttribute( 'colSpan' ) || '' );
+											setup : function( element )
+											{
+												var attrVal = parseInt( element.getAttribute( 'colSpan' ), 10 );
+												if( attrVal && attrVal  != 1 )
+												 	this.setValue(  attrVal );
 											},
 											commit : function( selectedCell )
 											{
-												if ( this.getValue() )
+												var value = parseInt( this.getValue(), 10 );
+												if ( value && value != 1 )
 													selectedCell.setAttribute( 'colSpan', this.getValue() );
 												else
@@ -365,14 +414,21 @@
 													widths : [ '70%', '30%' ],
 													'default' : '',
-													setup : function( selectedCell )
-													{
-														this.setValue( selectedCell.getAttribute( 'bgColor' ) || '' );
+													setup : function( element )
+													{
+														var bgColorAttr = element.getAttribute( 'bgColor' ),
+																bgColorStyle = element.getStyle( 'background-color' );
+
+														this.setValue( bgColorStyle || bgColorAttr );
 													},
 													commit : function( selectedCell )
 													{
-														if ( this.getValue() )
-															selectedCell.setAttribute( 'bgColor', this.getValue() );
+														var value = this.getValue();
+
+														if ( value )
+															selectedCell.setStyle( 'background-color', this.getValue() );
 														else
-															selectedCell.removeAttribute( 'bgColor' );
+															selectedCell.removeStyle( 'background-color' );
+
+														selectedCell.removeAttribute( 'bgColor');
 													}
 												},
@@ -409,14 +465,20 @@
 													widths : [ '70%', '30%' ],
 													'default' : '',
-													setup : function( selectedCell )
-													{
-														this.setValue( selectedCell.getStyle( 'border-color' ) || '' );
+													setup : function( element )
+													{
+														var borderColorAttr = element.getAttribute( 'borderColor' ),
+																borderColorStyle = element.getStyle( 'border-color' );
+
+														this.setValue( borderColorStyle || borderColorAttr );
 													},
 													commit : function( selectedCell )
 													{
-														if ( this.getValue() )
+														var value = this.getValue();
+														if ( value )
 															selectedCell.setStyle( 'border-color', this.getValue() );
 														else
 															selectedCell.removeStyle( 'border-color' );
+
+														selectedCell.removeAttribute( 'borderColor');
 													}
 												},
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/tabletools/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/tabletools/plugin.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/tabletools/plugin.js	(revision 5121)
@@ -137,5 +137,5 @@
 						rowIndex = row.$.rowIndex;
 
-				i == 0 && ( previousRowIndex = rowIndex - 1 );
+				!i && ( previousRowIndex = rowIndex - 1 );
 				rowsToDelete[ rowIndex ] = row;
 				i == cellsCount - 1 && ( nextRowIndex = rowIndex + 1 );
@@ -165,5 +165,5 @@
 		else if ( selectionOrRow instanceof CKEDITOR.dom.element )
 		{
-			var table = selectionOrRow.getAscendant( 'table' );
+			table = selectionOrRow.getAscendant( 'table' );
 
 			if ( table.$.rows.length == 1 )
@@ -172,4 +172,6 @@
 				selectionOrRow.remove();
 		}
+
+		return 0;
 	}
 
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/wsc/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/wsc/plugin.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/wsc/plugin.js	(revision 5121)
@@ -11,4 +11,5 @@
 CKEDITOR.plugins.add( 'wsc',
 {
+	requires : [ 'dialog' ],
 	init : function( editor )
 	{
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/wysiwygarea/plugin.js	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/wysiwygarea/plugin.js	(revision 5121)
@@ -268,10 +268,11 @@
   							' style="width:100%;height:100%"' +
   							' frameBorder="0"' +
-							// Support for custom document.domain in IE.
-							( isCustomDomain ?
+							( !CKEDITOR.env.webkit ?
+								// Support for custom document.domain in IE.
 								' src="javascript:void((function(){' +
-									'document.open();' +
-									'document.domain=\'' + document.domain + '\';' +
-									'document.close();' +
+								'document.open();' +		// To avoid HTTPS warnings.
+								( isCustomDomain ?
+									'document.domain=\'' + document.domain + '\';' : '' ) +
+								'document.close();' +
 								'})())"' : '' ) +
   							' tabIndex="-1"' +
Index: /CKEditor/branches/versions/3.2.x/_source/skins/office2003/toolbar.css
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/skins/office2003/toolbar.css	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/skins/office2003/toolbar.css	(revision 5121)
@@ -79,4 +79,6 @@
 	display: inline-block;
 	float: left;
+	!height: 28px;
+	!line-height: 28px;
 }
 
Index: /CKEditor/branches/versions/3.2.x/_source/skins/v2/richcombo.css
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/skins/v2/richcombo.css	(revision 5120)
+++ /CKEditor/branches/versions/3.2.x/_source/skins/v2/richcombo.css	(revision 5121)
@@ -145,4 +145,5 @@
 	width: 14px;
 	height: 20px;
+	_height: 22px;
 }
 
