Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.1154
diff -u -p -u -p -r1.1154 user.module
--- modules/user/user.module	7 Apr 2010 16:35:03 -0000	1.1154
+++ modules/user/user.module	9 Apr 2010 22:20:19 -0000
@@ -1149,7 +1149,7 @@ function user_user_categories() {
 }
 
 function user_login_block($form) {
-  $form['#action'] = url($_GET['q'], array('query' => drupal_get_destination()));
+  $form['#action'] = url($_GET['q'], array('query' => drupal_get_destination() + array('state' => 'loggedin')));
   $form['#id'] = 'user-login-form';
   $form['#validate'] = user_login_default_validators();
   $form['#submit'][] = 'user_login_submit';
@@ -1660,7 +1660,13 @@ function user_menu() {
  * Implements hook_init().
  */
 function user_init() {
+  global $user;
   drupal_add_css(drupal_get_path('module', 'user') . '/user.css');
+
+  if (isset($_GET['state']) && $_GET['state'] == 'loggedin' && !$user->uid) {
+    $domain = ini_get('session.cookie_domain') ? ltrim(ini_get('session.cookie_domain'), '.') : $_SERVER['HTTP_HOST'];
+    form_set_error('', t('It seems your browser does not accept cookies. To log into this site, you need to accept cookies from the domain %domain.', array('%domain' => $domain)));
+  }
 }
 
 /**
@@ -2018,7 +2024,7 @@ function user_login_finalize(&$edit = ar
 function user_login_submit($form, &$form_state) {
   global $user;
   $user = user_load($form_state['uid']);
-  $form_state['redirect'] = 'user/' . $user->uid;
+  $form_state['redirect'] = array('user/' . $user->uid, array('query' => array('state' => 'loggedin')));
 
   user_login_finalize($form_state);
 }
