Index: includes/locale.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/locale.inc,v
retrieving revision 1.255
diff -u -p -r1.255 locale.inc
--- includes/locale.inc	24 May 2010 07:22:12 -0000	1.255
+++ includes/locale.inc	3 Jun 2010 13:16:22 -0000
@@ -126,9 +126,14 @@ function locale_language_from_user($lang
 function locale_language_from_session($languages) {
   $param = variable_get('locale_language_negotiation_session_param', 'language');
 
-  // Request parameter.
+  // Request parameter: we need to update the session parameter only if we have
+  // an authenticated user.
   if (isset($_GET[$param]) && isset($languages[$langcode = $_GET[$param]])) {
-    return $_SESSION[$param] = $langcode;
+    global $user;
+    if ($user->uid) {
+      $_SESSION[$param] = $langcode;
+    }
+    return $langcode;
   }
 
   // Session parameter.
