Index: /CKEditor/branches/versions/3.2.x/CHANGES.html
===================================================================
--- /CKEditor/branches/versions/3.2.x/CHANGES.html	(revision 5204)
+++ /CKEditor/branches/versions/3.2.x/CHANGES.html	(revision 5205)
@@ -79,5 +79,5 @@
 		<li><a href="http://dev.fckeditor.net/ticket/4640">#4640</a> : Small optimizations for the fileBrowser plugin.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4583">#4583</a> : The "Target Frame Name" field is now visible when target is set to 'frame' only.</li>
-		<li><a href="http://dev.fckeditor.net/ticket/4863">#4863</a> : Fixing iframedialog's height doesn't stretch to 100%.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4863">#4863</a> : Fixing iframedialog's height doesn't stretch to 100% (except IE Quirks).</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4964">#4964</a> : The BACKSPACE key positioning was not correct in some cases with Firefox.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4980">#4980</a> : Setting border, vspace and hspace of images to zero was not working.</li>
Index: /CKEditor/branches/versions/3.2.x/_dev/fixlineends/fixlineends.bat
===================================================================
--- /CKEditor/branches/versions/3.2.x/_dev/fixlineends/fixlineends.bat	(revision 5204)
+++ /CKEditor/branches/versions/3.2.x/_dev/fixlineends/fixlineends.bat	(revision 5205)
@@ -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.2.x/_dev/fixlineends/fixlineends.php
===================================================================
--- /CKEditor/branches/versions/3.2.x/_dev/fixlineends/fixlineends.php	(revision 5204)
+++ /CKEditor/branches/versions/3.2.x/_dev/fixlineends/fixlineends.php	(revision 5205)
@@ -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.2.x/_source/core/resourcemanager.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/core/resourcemanager.js	(revision 5204)
+++ /CKEditor/branches/versions/3.2.x/_source/core/resourcemanager.js	(revision 5205)
@@ -128,5 +128,5 @@
 		return CKEDITOR.getUrl(
 				this.getPath( name ) +
-				( ( external && external.file !== null ) ? external.file : this.fileName + '.js' ) );
+				( ( external && ( typeof external.file == 'string' ) ) ? external.file : this.fileName + '.js' ) );
 	},
 
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/dialog/plugin.js	(revision 5204)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/dialog/plugin.js	(revision 5205)
@@ -869,5 +869,5 @@
 							expand : !!contents.expand,
 							padding : contents.padding,
-							style : contents.style || 'width: 100%; height: 100%;'
+							style : contents.style || 'width: 100%;' + ( CKEDITOR.env.ie6Compat ? '' : 'height: 100%;' )
 						}, pageHtml );
 
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/styles/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/styles/plugin.js	(revision 5204)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/styles/plugin.js	(revision 5205)
@@ -1249,2 +1249,10 @@
 
 CKEDITOR.stylesSet = new CKEDITOR.resourceManager( '', 'stylesSet' );
+
+// Backward compatibility (#5025).
+CKEDITOR.addStylesSet = CKEDITOR.tools.bind( CKEDITOR.stylesSet.add, CKEDITOR.stylesSet );
+CKEDITOR.loadStylesSet = function( name, url, callback )
+	{
+		CKEDITOR.stylesSet.addExternal( name, url, '' );
+		CKEDITOR.stylesSet.load( name, callback );
+	};
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/stylescombo/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/stylescombo/plugin.js	(revision 5204)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/stylescombo/plugin.js	(revision 5205)
@@ -20,15 +20,5 @@
 
 			if ( !stylesManager )
-			{
 				stylesManager = CKEDITOR.stylesSet;
-
-				// Backward compatibilities (#5025).
-				CKEDITOR.addStylesSet = CKEDITOR.tools.bind( stylesManager.add, stylesManager );
-				CKEDITOR.loadStylesSet = function( name, url, callback )
-					{
-						stylesManager.addExternal( name, url, '' );
-						CKEDITOR.stylesSet.load( name, callback );
-					};
-			}
 
 			var comboStylesSet = config.stylesCombo_stylesSet.split( ':' ),
Index: /CKEditor/branches/versions/3.2.x/_source/skins/office2003/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/skins/office2003/dialog.css	(revision 5204)
+++ /CKEditor/branches/versions/3.2.x/_source/skins/office2003/dialog.css	(revision 5205)
@@ -473,5 +473,8 @@
 /* close_button */
 
-.cke_skin_office2003 .cke_dialog .cke_dialog_body .cke_dialog_close_button
+.cke_skin_office2003 a.cke_dialog_close_button,
+.cke_skin_office2003 a:hover.cke_dialog_close_button,
+.cke_skin_office2003 .cke_browser_ie6 a.cke_dialog_close_button,
+.cke_skin_office2003 .cke_browser_ie6 a:hover.cke_dialog_close_button
 {
 	background-image: url(images/sprites.png);
@@ -489,10 +492,10 @@
 }
 
-.cke_skin_office2003 .cke_dialog_close_button span
+.cke_skin_office2003 a.cke_dialog_close_button span
 {
 	display: none;
 }
 
-.cke_skin_office2003 .cke_ltr .cke_dialog_close_button
+.cke_skin_office2003 .cke_ltr a.cke_dialog_close_button
 {
 	right: 10px;
@@ -500,5 +503,6 @@
 }
 
-.cke_skin_office2003 .cke_rtl .cke_dialog_close_button
+.cke_skin_office2003 .cke_rtl a.cke_dialog_close_button,
+.cke_skin_office2003 .cke_rtl a:hover.cke_dialog_close_button
 {
 	left: 10px;
@@ -507,5 +511,6 @@
 }
 
-.cke_skin_office2003 .cke_browser_ie6.cke_rtl .cke_dialog_close_button
+.cke_skin_office2003 .cke_browser_ie6.cke_rtl a.cke_dialog_close_button,
+.cke_skin_office2003 .cke_browser_ie6.cke_rtl a:hover.cke_dialog_close_button
 {
 	position: relative;
@@ -515,10 +520,12 @@
 }
 
-.cke_skin_office2003 .cke_browser_iequirks.cke_rtl.cke_single_page .cke_dialog_close_button
+.cke_skin_office2003 .cke_browser_iequirks.cke_rtl.cke_single_page a.cke_dialog_close_button,
+.cke_skin_office2003 .cke_browser_iequirks.cke_rtl.cke_single_page a:hover.cke_dialog_close_button
 {
 	margin-top: -32px;
 }
 
-.cke_skin_office2003 .cke_browser_iequirks.cke_ltr .cke_dialog_close_button
+.cke_skin_office2003 .cke_browser_iequirks.cke_ltr a.cke_dialog_close_button,
+.cke_skin_office2003 .cke_browser_iequirks.cke_ltr a:hover.cke_dialog_close_button
 {
 	margin-top: 0;
Index: /CKEditor/branches/versions/3.2.x/_source/skins/v2/dialog.css
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/skins/v2/dialog.css	(revision 5204)
+++ /CKEditor/branches/versions/3.2.x/_source/skins/v2/dialog.css	(revision 5205)
@@ -469,5 +469,8 @@
 /* close_button */
 
-.cke_skin_v2 .cke_dialog .cke_dialog_body .cke_dialog_close_button
+.cke_skin_v2 a.cke_dialog_close_button,
+.cke_skin_v2 a:hover.cke_dialog_close_button,
+.cke_skin_v2 .cke_browser_ie6 a.cke_dialog_close_button,
+.cke_skin_v2 .cke_browser_ie6 a:hover.cke_dialog_close_button
 {
 	background-image: url(images/sprites.png);
@@ -485,15 +488,16 @@
 }
 
-.cke_skin_v2 .cke_dialog_close_button span
+.cke_skin_v2 a.cke_dialog_close_button span
 {
 	display: none;
 }
 
-.cke_skin_v2 .cke_dialog_close_button:hover
+.cke_skin_v2 a:hover.cke_dialog_close_button
 {
 	background-position: -16px -687px;
 }
 
-.cke_skin_v2 .cke_ltr .cke_dialog_close_button
+.cke_skin_v2 .cke_ltr a.cke_dialog_close_button,
+.cke_skin_v2 .cke_ltr a:hover.cke_dialog_close_button
 {
 	right: 10px;
@@ -501,5 +505,6 @@
 }
 
-.cke_skin_v2 .cke_rtl .cke_dialog_close_button
+.cke_skin_v2 .cke_rtl a.cke_dialog_close_button,
+.cke_skin_v2 .cke_rtl a:hover.cke_dialog_close_button
 {
 	left: 10px;
@@ -508,5 +513,6 @@
 }
 
-.cke_skin_v2 .cke_browser_ie6.cke_rtl .cke_dialog_close_button
+.cke_skin_v2 .cke_browser_ie6.cke_rtl a.cke_dialog_close_button,
+.cke_skin_v2 .cke_browser_ie6.cke_rtl a:hover.cke_dialog_close_button
 {
 	position: relative;
@@ -516,10 +522,12 @@
 }
 
-.cke_skin_v2 .cke_browser_iequirks.cke_rtl.cke_single_page .cke_dialog_close_button
+.cke_skin_v2 .cke_browser_iequirks.cke_rtl.cke_single_page a.cke_dialog_close_button,
+.cke_skin_v2 .cke_browser_iequirks.cke_rtl.cke_single_page a:hover.cke_dialog_close_button
 {
 	margin-top: -32px;
 }
 
-.cke_skin_v2 .cke_browser_iequirks.cke_ltr .cke_dialog_close_button
+.cke_skin_v2 .cke_browser_iequirks.cke_ltr a.cke_dialog_close_button,
+.cke_skin_v2 .cke_browser_iequirks.cke_ltr a:hover.cke_dialog_close_button
 {
 	margin-top: 0;
