Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 6453)
+++ /CKEditor/trunk/CHANGES.html	(revision 6454)
@@ -61,4 +61,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/7181">#7181</a> : [IE9] toolbar item subsided in v2 and office skin.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/6671">#6671</a> : combo drop down list selected item not refreshed .</li>
+		<li><a href="http://dev.ckeditor.com/ticket/6614">#6614</a> : Resize handler in RTL enhancement.</li>
 		<li>Updated the following language files:<ul>
 			<li><a href="http://dev.ckeditor.com/ticket/7124">#7124</a> : Czech;</li>
Index: /CKEditor/trunk/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/dialog/plugin.js	(revision 6453)
+++ /CKEditor/trunk/_source/plugins/dialog/plugin.js	(revision 6454)
@@ -168,11 +168,13 @@
 		// Set the startup styles for the dialog, avoiding it enlarging the
 		// page size on the dialog creation.
-		this.parts.dialog.setStyles(
-			{
+		var startStyles = {
 				position : CKEDITOR.env.ie6Compat ? 'absolute' : 'fixed',
 				top : 0,
-				left: 0,
 				visibility : 'hidden'
-			});
+		};
+
+		startStyles[ dir == 'rtl' ? 'right' : 'left' ] = 0;
+		this.parts.dialog.setStyles( startStyles );
+
 
 		// Call the CKEDITOR.event constructor to initialize this instance.
@@ -636,4 +638,9 @@
 					}, this._.editor );
 
+				// Update dialog position when dimension get changed in RTL.
+				if ( this._.editor.lang.dir == 'rtl' && this._.position )
+					this._.position.x = CKEDITOR.document.getWindow().getViewPaneSize().width -
+						this._.contentSize.width - parseInt( this._.element.getFirst().getStyle( 'right' ) );
+
 				this._.contentSize = { width : width, height : height };
 			};
@@ -668,5 +675,7 @@
 				// The dialog may be fixed positioned or absolute positioned. Ask the
 				// browser what is the current situation first.
-				var element = this._.element.getFirst();
+				var element = this._.element.getFirst(),
+					rtl = this._.editor.lang.dir == 'rtl';
+
 				if ( isFixed === undefined )
 					isFixed = element.getComputedStyle( 'position' ) == 'fixed';
@@ -686,9 +695,16 @@
 				}
 
-				element.setStyles(
-						{
-							'left'	: ( x > 0 ? x : 0 ) + 'px',
-							'top'	: ( y > 0 ? y : 0 ) + 'px'
-						});
+				// Translate coordinate for RTL.
+				if ( rtl )
+				{
+					var dialogSize = this.getSize(),
+						viewPaneSize = CKEDITOR.document.getWindow().getViewPaneSize();
+					x = viewPaneSize.width - dialogSize.width - x;
+				}
+
+				var styles = { 'top'	: ( y > 0 ? y : 0 ) + 'px' };
+				styles[ rtl ? 'right' : 'left' ] = ( x > 0 ? x : 0 ) + 'px';
+
+				element.setStyles( styles );
 
 				save && ( this._.moved = 1 );
@@ -1704,17 +1720,4 @@
 				dialogCover;
 
-		function positionDialog( right )
-		{
-			// Maintain righthand sizing in RTL.
-			if ( dialog._.moved && editor.lang.dir == 'rtl' )
-			{
-				var element = dialog._.element.getFirst();
-				element.setStyle( 'right', right + "px" );
-				element.removeStyle( 'left' );
-			}
-			else if ( !dialog._.moved )
-				dialog.layout();
-		}
-
 		var mouseDownFn = CKEDITOR.tools.addFunction( function( $event )
 		{
@@ -1760,5 +1763,6 @@
 			else if ( resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT )
 				direction = ' cke_resizer_vertical';
-			var resizer = CKEDITOR.dom.element.createFromHtml( '<div class="cke_resizer' + direction + '"' +
+			var resizer = CKEDITOR.dom.element.createFromHtml( '<div' +
+					' class="cke_resizer' + direction + ' cke_resizer_' + editor.lang.dir + '"' +
 					' title="' + CKEDITOR.tools.htmlEncode( editor.lang.resize ) + '"' +
 					' onmousedown="CKEDITOR.tools.callFunction(' + mouseDownFn + ', event )"></div>' );
@@ -1780,8 +1784,4 @@
 				position = dialog.getPosition();
 
-			// IE might return "auto", we need exact position.
-			if ( right )
-				right = right == 'auto' ? viewSize.width - ( position.x || 0 ) - element.getSize( 'width' ) : parseInt( right, 10 );
-
 			if ( position.y + internalHeight > viewSize.height )
 				internalHeight = viewSize.height - position.y;
@@ -1791,5 +1791,5 @@
 
 			// Make sure the dialog will not be resized to the wrong side when it's in the leftmost position for RTL.
-			if ( ( resizable == CKEDITOR.DIALOG_RESIZE_WIDTH || resizable == CKEDITOR.DIALOG_RESIZE_BOTH ) && !( rtl && dx > 0 && !position.x ) )
+			if ( ( resizable == CKEDITOR.DIALOG_RESIZE_WIDTH || resizable == CKEDITOR.DIALOG_RESIZE_BOTH ) )
 				width = Math.max( def.minWidth || 0, internalWidth - wrapperWidth );
 
@@ -1798,6 +1798,7 @@
 
 			dialog.resize( width, height );
-			// The right property might get broken during resizing, so computing it before the resizing.
-			positionDialog( right );
+
+			if ( !dialog._.moved )
+				dialog.layout();
 
 			evt.data.preventDefault();
@@ -1820,22 +1821,4 @@
 				coverDoc.removeListener( 'mouseup', mouseUpHandler );
 				coverDoc.removeListener( 'mousemove', mouseMoveHandler );
-			}
-
-			// Switch back to use the left property, if RTL is used.
-			if ( editor.lang.dir == 'rtl' )
-			{
-				var element = dialog._.element.getFirst(),
-					left = element.getComputedStyle( 'left' );
-
-				// IE might return "auto", we need exact position.
-				if ( left == 'auto' )
-					left = viewSize.width - parseInt( element.getStyle( 'right' ), 10 ) - dialog.getSize().width;
-				else
-					left = parseInt( left, 10 );
-
-				element.removeStyle( 'right' );
-				// Make sure the left property gets applied, even if it is the same as previously.
-				dialog._.position.x += 1;
-				dialog.move( left, dialog._.position.y );
 			}
 		}
Index: /CKEditor/trunk/_source/plugins/resize/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/resize/plugin.js	(revision 6453)
+++ /CKEditor/trunk/_source/plugins/resize/plugin.js	(revision 6454)
@@ -9,4 +9,8 @@
 	{
 		var config = editor.config;
+
+		// Resize in the same direction of chrome,
+		// which is identical to dir of editor element. (#6614)
+		var resizeDir = editor.element.getDirection( 1 );
 
 		!config.resize_dir && ( config.resize_dir = 'both' );
@@ -32,5 +36,5 @@
 					width = startSize.width,
 					height = startSize.height,
-					internalWidth = width + dx * ( editor.lang.dir == 'rtl' ? -1 : 1 ),
+					internalWidth = width + dx * ( resizeDir == 'rtl' ? -1 : 1 ),
 					internalHeight = height + dy;
 
@@ -89,8 +93,15 @@
 							direction = ' cke_resizer_vertical';
 
-						event.data.html += '<div class="cke_resizer' + direction + '"' +
+						var resizerHtml =
+							'<div' +
+							' class="cke_resizer' + direction + ' cke_resizer_' + resizeDir + '"' +
 							' title="' + CKEDITOR.tools.htmlEncode( editor.lang.resize ) + '"' +
 							' onmousedown="CKEDITOR.tools.callFunction(' + mouseDownFn + ', event)"' +
 							'></div>';
+
+						// Always sticks the corner of botttom space.
+						resizeDir == 'ltr' && direction == 'ltr' ?
+							event.data.html += resizerHtml :
+							event.data.html = resizerHtml + event.data.html;
 					}
 				}, editor, null, 100 );
Index: /CKEditor/trunk/_source/skins/kama/mainui.css
===================================================================
--- /CKEditor/trunk/_source/skins/kama/mainui.css	(revision 6453)
+++ /CKEditor/trunk/_source/skins/kama/mainui.css	(revision 6454)
@@ -134,5 +134,5 @@
 }
 
-.cke_skin_kama .cke_rtl .cke_resizer
+.cke_skin_kama .cke_resizer_rtl
 {
 	cursor: sw-resize;
Index: /CKEditor/trunk/_source/skins/office2003/mainui.css
===================================================================
--- /CKEditor/trunk/_source/skins/office2003/mainui.css	(revision 6453)
+++ /CKEditor/trunk/_source/skins/office2003/mainui.css	(revision 6454)
@@ -102,5 +102,5 @@
 }
 
-.cke_skin_office2003 .cke_rtl .cke_resizer
+.cke_skin_office2003 .cke_resizer_rtl
 {
 	cursor: sw-resize;
Index: /CKEditor/trunk/_source/skins/v2/mainui.css
===================================================================
--- /CKEditor/trunk/_source/skins/v2/mainui.css	(revision 6453)
+++ /CKEditor/trunk/_source/skins/v2/mainui.css	(revision 6454)
@@ -111,5 +111,5 @@
 }
 
-.cke_skin_v2 .cke_rtl .cke_resizer
+.cke_skin_v2 .cke_resizer_rtl
 {
 	cursor: sw-resize;
