Index: /CKEditor/trunk/_source/core/env.js
===================================================================
--- /CKEditor/trunk/_source/core/env.js	(revision 3408)
+++ /CKEditor/trunk/_source/core/env.js	(revision 3409)
@@ -190,4 +190,7 @@
 		}
 
+		if ( env.gecko && version < 10900 )
+			env.cssClass += ' cke_browser_gecko18';
+
 		return env;
 	})();
Index: /CKEditor/trunk/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/dialog/plugin.js	(revision 3408)
+++ /CKEditor/trunk/_source/plugins/dialog/plugin.js	(revision 3409)
@@ -150,5 +150,5 @@
 		this.parts.dialog.setStyles(
 			{
-				position : 'absolute',
+				position : CKEDITOR.env.ie6Compat ? 'absolute' : 'fixed',
 				top : 0,
 				left: 0,
@@ -548,4 +548,16 @@
 			else
 				return;
+
+			// FIREFOX BUG: Fix vanishing caret for Firefox 2 or Gecko 1.8.
+			if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 )
+			{
+				var dialogElement = this.parts.dialog;
+				dialogElement.setStyle( 'position', 'absolute' );
+				setTimeout( function()
+					{
+						dialogElement.setStyle( 'position', 'fixed' );
+					}, 0 );
+			}
+
 
 			// First, set the dialog to an appropriate size.
Index: /CKEditor/trunk/_source/skins/office2003/dialog.css
===================================================================
--- /CKEditor/trunk/_source/skins/office2003/dialog.css	(revision 3408)
+++ /CKEditor/trunk/_source/skins/office2003/dialog.css	(revision 3409)
@@ -225,4 +225,16 @@
 }
 
+/* Gecko 1.8 layout workaround. */
+.cke_browser_gecko18.cke_skin_office2003 a.cke_dialog_tab,
+.cke_browser_gecko18.cke_skin_office2003 a:link.cke_dialog_tab,
+.cke_browser_gecko18.cke_skin_office2003 a:active.cke_dialog_tab,
+.cke_browser_gecko18.cke_skin_office2003 a:hover.cke_dialog_tab,
+.cke_browser_gecko18.cke_skin_office2003 a:visited.cke_dialog_tab
+{
+	display: inline;
+	position: relative;
+	top: 6px;
+}
+
 .cke_skin_office2003 a:hover.cke_dialog_tab
 {
@@ -336,4 +348,10 @@
 }
 
+/* Gecko 1.8 does not support display: inline-block */
+.cke_browser_gecko18.cke_skin_office2003 .cke_dialog_footer_buttons span.cke_dialog_ui_button
+{
+	display: block;
+}
+
 .cke_skin_office2003 a.cke_dialog_ui_button span.cke_disabled
 {
@@ -356,4 +374,10 @@
 	width: auto;
 	position: relative;
+}
+
+/* Gecko 1.8 does not support for display: inline-table */
+.cke_browser_gecko18.cke_skin_office2003 .cke_dialog_footer_buttons
+{
+	display: inline;
 }
 
@@ -552,10 +576,2 @@
 	color: #a0a0a0;
 }
-
-/* Firefox 2 */
-
-.cke_skin_office2003 .cke_browser_gecko .cke_dialog_tabs
-{
-	display: block;
-	float: left;
-}
Index: /CKEditor/trunk/_source/skins/v2/dialog.css
===================================================================
--- /CKEditor/trunk/_source/skins/v2/dialog.css	(revision 3408)
+++ /CKEditor/trunk/_source/skins/v2/dialog.css	(revision 3409)
@@ -220,4 +220,16 @@
 	display: inline-block;
 	cursor: pointer;
+}
+
+/* Gecko 1.8 layout workaround. */
+.cke_browser_gecko18.cke_skin_v2 a.cke_dialog_tab,
+.cke_browser_gecko18.cke_skin_v2 a:link.cke_dialog_tab,
+.cke_browser_gecko18.cke_skin_v2 a:active.cke_dialog_tab,
+.cke_browser_gecko18.cke_skin_v2 a:hover.cke_dialog_tab,
+.cke_browser_gecko18.cke_skin_v2 a:visited.cke_dialog_tab
+{
+	display: inline;
+	position: relative;
+	top: 6px;
 }
 
@@ -330,4 +342,10 @@
 }
 
+/* Gecko 1.8 does not support display: inline-block */
+.cke_browser_gecko18.cke_skin_v2 .cke_dialog_footer_buttons span.cke_dialog_ui_button
+{
+	display: block;
+}
+
 .cke_skin_v2 a.cke_dialog_ui_button span.cke_disabled
 {
@@ -350,4 +368,10 @@
 	width: auto;
 	position: relative;
+}
+
+/* Gecko 1.8 does not support for display: inline-table */
+.cke_browser_gecko18.cke_skin_v2 .cke_dialog_footer_buttons
+{
+	display: inline;
 }
 
@@ -551,10 +575,2 @@
 	color: #a0a0a0;
 }
-
-/* Firefox 2 */
-
-.cke_skin_v2 .cke_browser_gecko .cke_dialog_tabs
-{
-	display: block;
-	float: left;
-}
