Index: wp-includes/default-filters.php
===================================================================
--- wp-includes/default-filters.php	(revision 4186)
+++ wp-includes/default-filters.php	(working copy)
@@ -144,6 +144,7 @@
 
 // Actions
 add_action('wp_head', 'rsd_link');
+add_action('wp_head', 'locale_stylesheet');
 add_action('publish_future_post', 'wp_publish_post', 10, 1);
 add_action('wp_head', 'noindex', 1);
 add_action('wp_head', 'wp_print_scripts');
Index: wp-includes/locale.php
===================================================================
--- wp-includes/locale.php	(revision 4186)
+++ wp-includes/locale.php	(working copy)
@@ -12,6 +12,9 @@
 
 	var $meridiem;
 
+	var $text_direction = '';
+	var $locale_vars = array('text_direction');
+
 	function init() {
 		// The Weekdays
 		$this->weekday[0] = __('Sunday');
@@ -83,8 +86,23 @@
 		$this->meridiem['pm'] = __('pm');
 		$this->meridiem['AM'] = __('AM');
 		$this->meridiem['PM'] = __('PM');
+
+		$this->_load_locale_data();
 	}
 
+	function _load_locale_data() {
+		$locale = get_locale();
+		$locale_file = ABSPATH . "wp-includes/languages/$locale.php";
+		if ( !file_exists($locale_file) )
+			return;
+
+		include($locale_file);
+
+		foreach ( $this->locale_vars as $var ) {
+			$this->$var = $$var;	
+		}
+	}
+
 	function get_weekday($weekday_number) {
 		return $this->weekday[$weekday_number];
 	}
Index: wp-includes/theme.php
===================================================================
--- wp-includes/theme.php	(revision 4186)
+++ wp-includes/theme.php	(working copy)
@@ -25,6 +25,20 @@
 	return apply_filters('stylesheet_uri', $stylesheet_uri, $stylesheet_dir_uri);
 }
 
+function get_locale_stylesheet_uri() {
+	global $wp_locale;
+	$stylesheet_dir_uri = get_stylesheet_directory_uri();
+	$dir = get_stylesheet_directory();
+	$locale = get_locale();
+	if ( file_exists("$dir/$locale.css") )
+		$stylesheet_uri = "$stylesheet_dir_uri/$locale.css";
+	else if ( !empty($wp_locale->text_direction) && file_exists("$dir/{$wp_locale->text_direction}.css") )
+		$stylesheet_uri = "$stylesheet_dir_uri/{$wp_locale->text_direction}.css";
+	else
+		$stylesheet_uri = '';
+	return apply_filters('locale_stylesheet_uri', $stylesheet_uri, $stylesheet_dir_uri);
+}
+
 function get_template() {
 	return apply_filters('template', get_option('template'));
 }
@@ -369,6 +383,13 @@
 	require_once($file);
 }
 
+function locale_stylesheet() {
+	$stylesheet = get_locale_stylesheet_uri();
+	if ( empty($stylesheet) )
+		return;
+	echo '<link rel="stylesheet" href="' . $stylesheet . '" type="text/css" media="screen" />';
+}
+
 function validate_current_theme() {
 	// Don't validate during an install/upgrade.
 	if ( defined('WP_INSTALLING') )
Index: wp-admin/admin-header.php
===================================================================
--- wp-admin/admin-header.php	(revision 4186)
+++ wp-admin/admin-header.php	(working copy)
@@ -18,6 +18,9 @@
 <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" />
 <title><?php bloginfo('name') ?> &rsaquo; <?php echo $title; ?> &#8212; WordPress</title>
 <link rel="stylesheet" href="<?php echo get_option('siteurl') ?>/wp-admin/wp-admin.css?version=<?php bloginfo('version'); ?>" type="text/css" />
+<?php if ( ('rtl' == $wp_locale->text_direction) ) : ?>
+<link rel="stylesheet" href="<?php echo get_option('siteurl') ?>/wp-admin/rtl.css?version=<?php bloginfo('version'); ?>" type="text/css" />
+<?php endif; ?> 
 <script type="text/javascript">
 //<![CDATA[
 function addLoadEvent(func) {if ( typeof wpOnload!='function'){wpOnload=func;}else{ var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}}
