Index: /CKEditor/branches/versions/3.4.x/CHANGES.html
===================================================================
--- /CKEditor/branches/versions/3.4.x/CHANGES.html	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/CHANGES.html	(revision 5715)
@@ -35,4 +35,5 @@
 		CKEditor Changelog
 	</h1>
+
 	<h3>
 			CKEditor 3.4 (SVN)</h3>
@@ -49,4 +50,11 @@
 			Fixed issues:</p>
 	<ul>
+		<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> : Jquery adapter sample and 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/5079">#5079</a> : Page break in lists move to above the list when you switch from WYSIWYG to HTML mode and back.</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/5911">#5911</a> : BIDI: List items should support and retain correct base language direction
 		<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>
@@ -57,5 +65,6 @@
 			New features:</p>
 	<ul>
-			<li></li>
+		<li><a href="http://dev.fckeditor.net/ticket/5882">#5882</a> : New event dialog#selectPage like the OnDialogTabChange in FCKeditor.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/5927">#5927</a> : The native controls in ui.dialog elements can be styled with a controlStyle definition.</li>
 	</ul>
 	<p>
@@ -70,4 +79,24 @@
 		<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 Height 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 smilies 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 Smilies 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 can not 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>Updated the following language files:<ul>
+			<li>Hebrew;</li>
+			<li><a href="http://dev.fckeditor.net/ticket/5962">#5962</a> : German;</li>
+		</ul></li>
 	</ul>
 	<h3>
Index: /CKEditor/branches/versions/3.4.x/_dev/docs_build/docs_build.conf
===================================================================
--- /CKEditor/branches/versions/3.4.x/_dev/docs_build/docs_build.conf	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_dev/docs_build/docs_build.conf	(revision 5715)
@@ -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.4.x/_dev/fixlineends/fixlineends.bat
===================================================================
--- /CKEditor/branches/versions/3.4.x/_dev/fixlineends/fixlineends.bat	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_dev/fixlineends/fixlineends.bat	(revision 5715)
@@ -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.4.x/_dev/fixlineends/fixlineends.php
===================================================================
--- /CKEditor/branches/versions/3.4.x/_dev/fixlineends/fixlineends.php	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_dev/fixlineends/fixlineends.php	(revision 5715)
@@ -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.4.x/_samples/jqueryadapter.html
===================================================================
--- /CKEditor/branches/versions/3.4.x/_samples/jqueryadapter.html	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_samples/jqueryadapter.html	(revision 5715)
@@ -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.4.x/_samples/output_html.html
===================================================================
--- /CKEditor/branches/versions/3.4.x/_samples/output_html.html	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_samples/output_html.html	(revision 5715)
@@ -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.4.x/_source/core/dom/element.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/core/dom/element.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/core/dom/element.js	(revision 5715)
@@ -1163,4 +1163,5 @@
 				{
 					this.$.style.MozUserSelect = 'none';
+					this.on( 'dragstart', function (evt) { evt.data.preventDefault(); } );
 				}
 			: CKEDITOR.env.webkit ?
@@ -1168,4 +1169,5 @@
 				{
 					this.$.style.KhtmlUserSelect = 'none';
+					this.on( 'dragstart', function (evt) { evt.data.preventDefault(); } );
 				}
 			:
Index: /CKEditor/branches/versions/3.4.x/_source/lang/_translationstatus.txt
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/lang/_translationstatus.txt	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/lang/_translationstatus.txt	(revision 5715)
@@ -11,5 +11,5 @@
 cy.js      Found: 452 Missing: 73
 da.js      Found: 404 Missing: 121
-de.js      Found: 444 Missing: 81
+de.js      Found: 522 Missing: 3
 el.js      Found: 286 Missing: 239
 en-au.js   Found: 369 Missing: 156
@@ -27,5 +27,5 @@
 gl.js      Found: 283 Missing: 242
 gu.js      Found: 300 Missing: 225
-he.js      Found: 523 Missing: 2
+he.js      Found: 525 Missing: 0
 hi.js      Found: 302 Missing: 223
 hr.js      Found: 404 Missing: 121
Index: /CKEditor/branches/versions/3.4.x/_source/lang/de.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/lang/de.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/lang/de.js	(revision 5715)
@@ -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,23 +193,23 @@
 	list:
 	{
-		numberedTitle		: 'Numbered List Properties', // MISSING
-		bulletedTitle		: 'Bulleted List Properties', // MISSING
-		type				: 'Type', // MISSING
-		start				: 'Start', // MISSING
-		validateStartNumber				:'List start number must be a whole number.', // 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.)'
 	},
 
@@ -247,5 +247,5 @@
 		widthPx		: 'Pixel',
 		widthPc		: '%',
-		widthUnit	: 'width unit', // MISSING
+		widthUnit	: 'Breite Einheit',
 		height		: 'Höhe',
 		cellSpace	: 'Zellenabstand außen',
@@ -298,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'
 		},
 
@@ -410,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',
@@ -422,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.'
 	},
 
@@ -509,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'
 	},
@@ -540,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'
 	},
 
@@ -548,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'
 	},
 
@@ -561,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!):',
@@ -572,5 +572,5 @@
 	{
 		label		: 'Stil',
-		panelTitle	: 'Formatting Styles', // MISSING
+		panelTitle	: 'Formatierungenstil',
 		panelTitle1	: 'Block Stilart',
 		panelTitle2	: 'Inline Stilart',
@@ -597,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'
   	},
 
@@ -630,5 +630,5 @@
 		textColorTitle	: 'Textfarbe',
 		bgColorTitle	: 'Hintergrundfarbe',
-		panelTitle		: 'Colors', // MISSING
+		panelTitle		: 'Farben',
 		auto			: 'Automatisch',
 		more			: 'Weitere Farben...'
@@ -682,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',
@@ -696,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'
@@ -723,5 +723,5 @@
 
 	maximize : 'Maximieren',
-	minimize : 'Minimize', // MISSING
+	minimize : 'Minimieren',
 
 	fakeobjects :
@@ -737,13 +737,13 @@
 	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',
 
 	bidi :
Index: /CKEditor/branches/versions/3.4.x/_source/lang/he.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/lang/he.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/lang/he.js	(revision 5715)
@@ -197,5 +197,5 @@
 		type				: 'סוג',
 		start				: 'תחילת מספור',
-		validateStartNumber				:'List start number must be a whole number.', // MISSING
+		validateStartNumber				:'שדה תחילת המספור חייב להכיל מספר שלם.',
 		circle				: 'עיגול ריק',
 		disc				: 'עיגול מלא',
@@ -261,5 +261,5 @@
 		invalidCols		: 'שדה מספר העמודות חייב להיות מספר גדול מ 0.',
 		invalidBorder	: 'שדה גודל המסגרת חייב להיות מספר.',
-		invalidWidth	: 'שדה רוחב הטבלה חייב להיות רוחב.',
+		invalidWidth	: 'שדה רוחב הטבלה חייב להיות מספר.',
 		invalidHeight	: 'שדה גובה הטבלה חייב להיות מספר.',
 		invalidCellSpacing	: 'שדה ריווח התאים חייב להיות מספר.',
@@ -738,5 +738,5 @@
 	{
 		title		: 'בחירת צבע',
-		options	:	'Color Options', // MISSING
+		options	:	'אפשרויות צבע',
 		highlight	: 'סימון',
 		selected	: 'בחירה',
Index: /CKEditor/branches/versions/3.4.x/_source/plugins/button/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/button/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/button/plugin.js	(revision 5715)
@@ -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.4.x/_source/plugins/clipboard/dialogs/paste.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/clipboard/dialogs/paste.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/clipboard/dialogs/paste.js	(revision 5715)
@@ -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.4.x/_source/plugins/colorbutton/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/colorbutton/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/colorbutton/plugin.js	(revision 5715)
@@ -43,8 +43,9 @@
 
 						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.4.x/_source/plugins/colordialog/dialogs/colordialog.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/colordialog/dialogs/colordialog.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/colordialog/dialogs/colordialog.js	(revision 5715)
@@ -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.4.x/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/dialog/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/dialog/plugin.js	(revision 5715)
@@ -408,5 +408,5 @@
 
 				if ( editor.config.dialog_startupFocusTab
-					&& me._.tabIdList.length > 1 )
+					&& me._.pageCount > 1 )
 				{
 					me._.tabBarMode = true;
@@ -942,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 )
@@ -2952,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.4.x/_source/plugins/dialogui/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/dialogui/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/dialogui/plugin.js	(revision 5715)
@@ -237,4 +237,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 +379,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 +461,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 +622,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 +1338,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 +1385,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 +1428,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 +1438,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 +1457,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 +1477,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.4.x/_source/plugins/domiterator/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/domiterator/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/domiterator/plugin.js	(revision 5715)
@@ -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.4.x/_source/plugins/elementspath/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/elementspath/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/elementspath/plugin.js	(revision 5715)
@@ -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.4.x/_source/plugins/floatpanel/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/floatpanel/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/floatpanel/plugin.js	(revision 5715)
@@ -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.4.x/_source/plugins/htmldataprocessor/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/htmldataprocessor/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/htmldataprocessor/plugin.js	(revision 5715)
@@ -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.4.x/_source/plugins/image/dialogs/image.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/image/dialogs/image.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/image/dialogs/image.js	(revision 5715)
@@ -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.4.x/_source/plugins/indent/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/indent/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/indent/plugin.js	(revision 5715)
@@ -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.4.x/_source/plugins/link/dialogs/link.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/link/dialogs/link.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/link/dialogs/link.js	(revision 5715)
@@ -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.4.x/_source/plugins/list/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/list/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/list/plugin.js	(revision 5715)
@@ -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.4.x/_source/plugins/maximize/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/maximize/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/maximize/plugin.js	(revision 5715)
@@ -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.4.x/_source/plugins/pagebreak/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/pagebreak/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/pagebreak/plugin.js	(revision 5715)
@@ -31,7 +31,6 @@
 				'background-repeat: no-repeat;' +
 				'clear: both;' +
-				'display: block;' +
 				'float: none;' +
-				'width:100% !important; _width:99.9% !important;' +
+				'width: 5em;' +
 				'border-top: #999999 1px dotted;' +
 				'border-bottom: #999999 1px dotted;' +
@@ -55,5 +54,5 @@
 					elements :
 					{
-						div : function( element )
+						span : function( element )
 						{
 							var attributes = element.attributes,
@@ -63,5 +62,5 @@
 
 							if ( childStyle && ( /page-break-after\s*:\s*always/i ).test( style ) && ( /display\s*:\s*none/i ).test( childStyle ) )
-								return editor.createFakeParserElement( element, 'cke_pagebreak', 'div' );
+								return editor.createFakeParserElement( element, 'cke_pagebreak', 'span' );
 						}
 					}
@@ -78,8 +77,8 @@
 	{
 		// Create the element that represents a print break.
-		var breakObject = CKEDITOR.dom.element.createFromHtml( '<div style="page-break-after: always;"><span style="display: none;">&nbsp;</span></div>' );
+		var breakObject = CKEDITOR.dom.element.createFromHtml( '<span style="page-break-after: always;"><span style="display: none;">&nbsp;</span></span>' );
 
 		// Creates the fake image used for this element.
-		breakObject = editor.createFakeElement( breakObject, 'cke_pagebreak', 'div' );
+		breakObject = editor.createFakeElement( breakObject, 'cke_pagebreak', 'span' );
 
 		var ranges = editor.getSelection().getRanges( true );
@@ -94,5 +93,4 @@
 				breakObject = breakObject.clone( true );
 
-			range.splitBlock( 'p' );
 			range.insertNode( breakObject );
 			if ( i == ranges.length - 1 )
Index: /CKEditor/branches/versions/3.4.x/_source/plugins/panel/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/panel/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/panel/plugin.js	(revision 5715)
@@ -193,4 +193,5 @@
 
 				holder = doc.getBody();
+				holder.unselectable();
 			}
 			else
Index: /CKEditor/branches/versions/3.4.x/_source/plugins/pastefromword/filter/default.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/pastefromword/filter/default.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/pastefromword/filter/default.js	(revision 5715)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -160,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
Index: /CKEditor/branches/versions/3.4.x/_source/plugins/pastetext/dialogs/pastetext.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/pastetext/dialogs/pastetext.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/pastetext/dialogs/pastetext.js	(revision 5715)
@@ -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.4.x/_source/plugins/pastetext/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/pastetext/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/pastetext/plugin.js	(revision 5715)
@@ -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.4.x/_source/plugins/resize/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/resize/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/resize/plugin.js	(revision 5715)
@@ -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.4.x/_source/plugins/scayt/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/scayt/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/scayt/plugin.js	(revision 5715)
@@ -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.4.x/_source/plugins/selection/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/selection/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/selection/plugin.js	(revision 5715)
@@ -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;
 
Index: /CKEditor/branches/versions/3.4.x/_source/plugins/smiley/dialogs/smiley.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/smiley/dialogs/smiley.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/smiley/dialogs/smiley.js	(revision 5715)
@@ -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.4.x/_source/plugins/smiley/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/smiley/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/smiley/plugin.js	(revision 5715)
@@ -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.4.x/_source/plugins/styles/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/styles/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/styles/plugin.js	(revision 5715)
@@ -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.4.x/_source/plugins/tabletools/dialogs/tableCell.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/tabletools/dialogs/tableCell.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/tabletools/dialogs/tableCell.js	(revision 5715)
@@ -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 );
@@ -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.4.x/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/plugins/wysiwygarea/plugin.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/plugins/wysiwygarea/plugin.js	(revision 5715)
@@ -1,3 +1,3 @@
-/*
+﻿/*
 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -134,5 +134,6 @@
 
 			var next = lastElement.getNextSourceNode( true );
-			if ( next && next.type == CKEDITOR.NODE_ELEMENT )
+			var lastElementIsInline = CKEDITOR.dtd.$inline[ lastElement.getName() ];
+			if ( !lastElementIsInline && next && next.type == CKEDITOR.NODE_ELEMENT )
 				range.moveToElementEditStart( next );
 
@@ -815,4 +816,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();
 							},
 
@@ -920,5 +928,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.4.x/_source/skins/kama/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/skins/kama/dialog.css	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/skins/kama/dialog.css	(revision 5715)
@@ -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
@@ -725,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
 {
Index: /CKEditor/branches/versions/3.4.x/_source/skins/kama/reset.css
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/skins/kama/reset.css	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/skins/kama/reset.css	(revision 5715)
@@ -77,2 +77,8 @@
 	cursor: default;
 }
+
+.cke_skin_kama fieldset
+{
+	padding: 10px;
+	border: 2px groove #E0DFE3;
+}
Index: /CKEditor/branches/versions/3.4.x/_source/skins/office2003/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/skins/office2003/dialog.css	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/skins/office2003/dialog.css	(revision 5715)
@@ -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
@@ -656,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
 {
Index: /CKEditor/branches/versions/3.4.x/_source/skins/office2003/panel.css
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/skins/office2003/panel.css	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/skins/office2003/panel.css	(revision 5715)
@@ -47,5 +47,5 @@
 body.cke_panel_frame
 {
-	overflow: auto;
+	overflow: hidden;
 }
 
Index: /CKEditor/branches/versions/3.4.x/_source/skins/office2003/reset.css
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/skins/office2003/reset.css	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/skins/office2003/reset.css	(revision 5715)
@@ -77,2 +77,8 @@
 	cursor: default;
 }
+
+.cke_skin_office2003 fieldset
+{
+	padding: 10px;
+	border: 2px groove #E0DFE3;
+}
Index: /CKEditor/branches/versions/3.4.x/_source/skins/v2/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/skins/v2/dialog.css	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/skins/v2/dialog.css	(revision 5715)
@@ -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;
 }
 
@@ -658,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
 {
Index: /CKEditor/branches/versions/3.4.x/_source/skins/v2/panel.css
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/skins/v2/panel.css	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/skins/v2/panel.css	(revision 5715)
@@ -47,5 +47,5 @@
 body.cke_panel_frame
 {
-	overflow: auto;
+	overflow: hidden;
 }
 
Index: /CKEditor/branches/versions/3.4.x/_source/skins/v2/reset.css
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/skins/v2/reset.css	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/skins/v2/reset.css	(revision 5715)
@@ -77,2 +77,8 @@
 	cursor: default;
 }
+
+.cke_skin_v2 fieldset
+{
+	padding: 10px;
+	border: 2px groove #E0DFE3;
+}
Index: /CKEditor/branches/versions/3.4.x/_source/themes/default/theme.js
===================================================================
--- /CKEditor/branches/versions/3.4.x/_source/themes/default/theme.js	(revision 5714)
+++ /CKEditor/branches/versions/3.4.x/_source/themes/default/theme.js	(revision 5715)
@@ -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();
