Index: _source/plugins/specialchar/dialogs/specialchar.js
===================================================================
--- _source/plugins/specialchar/dialogs/specialchar.js	(revision 5206)
+++ _source/plugins/specialchar/dialogs/specialchar.js	Thu Mar 11 15:47:21 CST 2010
@@ -10,7 +10,9 @@
 	 * @type {CKEDITOR.dialog}
 	 */
 	var dialog,
-		lang = editor.lang.specialChar;
+		lang = editor.lang.specialChar,
+		rtl = editor.lang.dir;
+
 	var onChoice = function( evt )
 	{
 		var target, value;
@@ -119,7 +121,7 @@
 				break;
 
 			// RIGHT-ARROW
-			case 39 :
+			case ( rtl? 37 : 39 ) :
 			// TAB
 			case 9 :
 				// relative is TD
@@ -153,7 +155,7 @@
 				break;
 
 			// LEFT-ARROW
-			case 37 :
+			case ( rtl? 39 : 37 ) :
 			// SHIFT + TAB
 			case CKEDITOR.SHIFT + 9 :
 				// relative is TD
Index: _source/plugins/smiley/dialogs/smiley.js
===================================================================
--- _source/plugins/smiley/dialogs/smiley.js	(revision 5206)
+++ _source/plugins/smiley/dialogs/smiley.js	Thu Mar 11 15:45:31 CST 2010
@@ -7,6 +7,7 @@
 {
 	var config = editor.config,
 		lang = editor.lang.smiley,
+		rtl = editor.lang.dir == 'rtl',
 		images = config.smiley_images,
 		columns = 8,
 		i;
@@ -86,7 +87,7 @@
 				break;
 
 			// RIGHT-ARROW
-			case 39 :
+			case ( rtl? 37 : 39 ) :
 			// TAB
 			case 9 :
 				// relative is TD
@@ -107,7 +108,7 @@
 				break;
 
 			// LEFT-ARROW
-			case 37 :
+			case ( rtl? 39 : 37 ) :
 			// SHIFT + TAB
 			case CKEDITOR.SHIFT + 9 :
 				// relative is TD
