Index: /CKEditor/branches/prototype/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/branches/prototype/_source/plugins/dialog/plugin.js	(revision 2746)
+++ /CKEditor/branches/prototype/_source/plugins/dialog/plugin.js	(revision 2747)
@@ -127,5 +127,4 @@
 	 * 	<li>close - close button.</li>
 	 * 	<li>tabs - tabs area.</li>
-	 * 	<li>bridge - the bridge between the active tab and the content page.</li>
 	 * 	<li>contents - the content page area.</li>
 	 * 	<li>footer - the footer area.</li>
@@ -154,8 +153,8 @@
 		'title' : [1,1,0],
 		'close' : [1,1,0,0],
-		'tabs' : [1,1,1],
-		'bridge' : [1,1,2],
-		'contents' : [1,1,3],
-		'footer' : [1,1,4]
+		'tabs' : [1,1,1,0,0,1,0,0,0],
+		'tabs_table' : [1,1,1],
+		'contents' : [1,1,2],
+		'footer' : [1,1,3]
 	};
 	for ( i in this.parts )
@@ -264,5 +263,6 @@
 		this.addPage( definition.contents[i] );
 
-	var classRegex = /cke_dialog_tab(\s|$|_)/;
+	var tabRegex = /cke_dialog_tab(\s|$|_)/,
+		tabOuterRegex = /cke_dialog_tab(\s|$)/;
 	this.parts['tabs'].on( 'click', function( evt )
 			{
@@ -270,10 +270,12 @@
 
 				// If we aren't inside a tab, bail out.
-				if ( !classRegex.test( target.$.className ) )
+				if ( !tabRegex.test( target.$.className ) )
 					return;
 
-				// Find the outer <span> container of the tab.
-				while ( target.getName() == 'div' && classRegex.test( target.$.className ) )
+				// Find the outer <td> container of the tab.
+				while ( target.getName() != 'td' || !tabOuterRegex.test( target.$.className ) )
+				{
 					target = target.getParent();
+				}
 				id = target.$.id.substr( 0, target.$.id.lastIndexOf( '_' ) );
 				this.selectPage( id );
@@ -542,12 +544,14 @@
 		page = CKEDITOR.dom.element.createFromHtml( pageHtml.join( '' ) );
 		tab = CKEDITOR.dom.element.createFromHtml( [
-				'<span><div class="cke_dialog_tab" ', titleHtml, '>',
-					'<div class="cke_dialog_tab_left"></div>',
-					'<div class="cke_dialog_tab_center">',
-						CKEDITOR.tools.htmlEncode( contents.label ),
-					'</div>',
-					'<div class="cke_dialog_tab_right"></div>',
-				'</div></span>'
+				'<table><tbody><tr><td class="cke_dialog_tab" ', titleHtml, '>',
+				'<div><table border="0" cellspacing="0" cellpadding="0"><tbody><tr>',
+					'<td class="cke_dialog_tab_left"></td>',
+					'<td class="cke_dialog_tab_center">',
+						CKEDITOR.tools.htmlEncode( contents.label.replace( / /g, '\xa0' ) ),
+					'</td>',
+					'<td class="cke_dialog_tab_right"></td>',
+				'</tr></tbody></table></div></td></tr></tbody></table>'
 			].join( '' ) );
+		tab = tab.getChild( [0,0,0] );
 
 		// First and last tab styles classes.
@@ -577,5 +581,5 @@
 
 		// Attach the DOM nodes.
-		tab.getFirst().unselectable();
+		tab.unselectable();
 		page.appendTo( this.parts.contents );
 		tab.appendTo( this.parts.tabs );
@@ -600,6 +604,4 @@
 	selectPage : function( id )
 	{
-		var bridge = this.parts.bridge;
-
 		// Hide the non-selected tabs and pages.
 		for ( var i in this._.tabs )
@@ -618,28 +620,4 @@
 		selected[1].show();
 		var me = this;
-
-		// Place the bridge just under the selected tab. Count 1px left and right
-		// of the tab as border space.
-		var placeBridge = function()
-		{
-			var selectedElement = selected[0].getFirst().$;
-
-			// Gecko and Opera have a strange bug that cause the bridge to be
-			// added to the wrong layout element initially.
-			if ( !selectedElement.offsetParent || selectedElement.offsetParent.nodeName.toLowerCase() == 'body' )
-			{
-				setTimeout( placeBridge, 50 );
-				return;
-			}
-			bridge.setStyles(
-					{
-						left : me._.editor.lang.dir == 'ltr' ? ( selectedElement.offsetLeft + 17 || 0 ) + 'px' : 'auto',
-						right : me._.editor.lang.dir == 'rtl' ?
-							( selectedElement.offsetParent.offsetWidth - selectedElement.offsetLeft - selectedElement.offsetWidth + 17 || 0 ) + 'px' :
-							'auto',
-						width : ( selected[0].getFirst().$.offsetWidth - 2 || 0 ) + 'px'
-					});
-		};
-		placeBridge();
 	},
 
Index: /CKEditor/branches/prototype/_source/skins/default/dialog.css
===================================================================
--- /CKEditor/branches/prototype/_source/skins/default/dialog.css	(revision 2746)
+++ /CKEditor/branches/prototype/_source/skins/default/dialog.css	(revision 2747)
@@ -183,6 +183,23 @@
 	right: 16px;
 	background-color: #e3e3c7;
-	clear: both;
+	z-index: 1;
+	border-collapse: separate;
+}
+
+.cke_skin_default.cke_browser_ie .cke_dialog_tabs
+{
+	border-collapse: collapse;
+}
+
+.cke_skin_default .cke_dialog_tabs .head_filler
+{
 	padding-left: 10px;
+	border-bottom: 1px solid #D5D59D;
+}
+
+.cke_skin_default .cke_dialog_tabs .tail_filler
+{
+	width: 100%;
+	border-bottom: 1px solid #D5D59D;
 }
 
@@ -196,4 +213,5 @@
 	right: 16px;
 	border: #d5d59d 1px solid;
+	border-top: none;
 }
 
@@ -225,16 +243,16 @@
 .cke_skin_default .cke_dialog_tab_center
 {
-	float: left;
 	cursor: pointer;
-	height: 15px;
-}
-
-.cke_skin_default .cke_dialog_tab,
+}
+
+.cke_skin_default .cke_dialog_tab div
+{
+	border-bottom: 1px solid #D5D59D;
+}
+
 .cke_skin_default .cke_dialog_tab_left,
 .cke_skin_default .cke_dialog_tab_right
 {
-	float: left;
 	cursor: pointer;
-	height: 23px;
 }
 
@@ -242,13 +260,14 @@
 {
 	color: #737357;
-	padding: 4px 5px 3px 5px;
 	border-left: 1px solid #d5d59d;
 	border-right: 1px solid #d5d59d;
 	border-top: 1px solid #d5d59d;
-}
-
-.cke_skin_default.cke_rtl .cke_dialog_tab
-{
-	float: right;
+	height: 15px;
+	padding: 4px 5px;
+}
+
+.cke_skin_default .cke_dialog_tab_selected div
+{
+	border-bottom: 1px solid #F1F1E3;
 }
 
@@ -264,21 +283,4 @@
 	background-color: #f1f1e3;
 	font-weight: bold;
-}
-
-.cke_skin_default .cke_dialog_tabs_bridge
-{
-	background-color: #f1f1e3;
-	height: 1px;
-	position: absolute;
-	top: 54px;
-	left: 0px;
-	width: 0px;
-	z-index: 1;
-	overflow: hidden;
-}
-
-.cke_skin_default .single_page .cke_dialog_tabs_bridge
-{
-	display: none;
 }
 
Index: /CKEditor/branches/prototype/_source/skins/default/skin.js
===================================================================
--- /CKEditor/branches/prototype/_source/skins/default/skin.js	(revision 2746)
+++ /CKEditor/branches/prototype/_source/skins/default/skin.js	(revision 2747)
@@ -64,5 +64,6 @@
 				width = data.width,
 				height = data.height,
-				dialog = data.dialog;
+				dialog = data.dialog,
+				standardsMode = ( CKEDITOR.document.$.compatMode == 'CSS1Compat' );
 			if ( data.skin != skinName )
 				return;
@@ -81,9 +82,9 @@
 			setSize( dialog, 'b', width - 60, 51 );
 			setSize( dialog, 'b_resize', width - 32, null );
+			setSize( dialog, 'tabs_table', width - 32, null );
 
 			if ( CKEDITOR.env.ie && CKEDITOR.env.version < 7 )
 			{
-				var standardsMode = ( CKEDITOR.document.$.compatMode == 'CSS1Compat' ),
-					contentWidth = width - 34,
+				var contentWidth = width - 34,
 					contentHeight = dialog.getPageCount() > 1 ? height - 107 : height - 84,
 					contentsLength = dialog.parts.contents.getChildCount();
@@ -97,5 +98,4 @@
 
 				setSize( dialog, 'title', standardsMode ? width - 52 : width - 32, standardsMode ? null : 31 );
-				setSize( dialog, 'tabs', standardsMode ? width - 42 : width - 32, null );
 				setSize( dialog, 'contents', contentWidth, contentHeight );
 				setSize( dialog, 'footer', width - 32);
Index: /CKEditor/branches/prototype/_source/themes/default/theme.js
===================================================================
--- /CKEditor/branches/prototype/_source/themes/default/theme.js	(revision 2746)
+++ /CKEditor/branches/prototype/_source/themes/default/theme.js	(revision 2747)
@@ -131,6 +131,9 @@
 								'<div id="cke_dialog_close_button_%d" class="cke_dialog_close_button"></div>',
 							'</div>',
-							'<div id="cke_dialog_tabs_%d" class="cke_dialog_tabs"></div>',
-							'<div id="cke_dialog_tabs_bridge_%d" class="cke_dialog_tabs_bridge"></div>',
+							'<table id="cke_dialog_tabs_%d" class="cke_dialog_tabs" cellpadding="0" border="0" cellspacing="0"><tbody><tr>',
+							'<td class="head_filler"></td>',
+							'<td><table cellpadding="0" border="0" cellspacing="0"><tbody><tr></tr></tbody></table></td>',
+							'<td class="tail_filler"></td>',
+							'</tr></tbody></table>',
 							'<div id="cke_dialog_contents_%d" class="cke_dialog_contents"></div>',
 							'<div id="cke_dialog_footer_%d" class="cke_dialog_footer"></div>',
