Index: modules/blogapi/blogapi.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/blogapi/blogapi.module,v
retrieving revision 1.110
diff -u -p -r1.110 blogapi.module
--- modules/blogapi/blogapi.module	28 Nov 2007 10:29:19 -0000	1.110
+++ modules/blogapi/blogapi.module	7 Dec 2007 23:16:19 -0000
@@ -516,6 +516,12 @@ function blogapi_validate_user($username
     else {
       return t('You do not have permission to edit this blog.');
     }
+    watchdog('user', 'Session opened for %name.', array('%name' => $user->name));
+    // Update the user table timestamp noting user has logged in.
+    db_query("UPDATE {users} SET login = %d WHERE uid = %d", time(), $user->uid);
+    $edit = array();
+    user_module_invoke('login', $edit, $user);
+    sess_regenerate();
   }
   else {
     return t('Wrong username or password.');
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.868
diff -u -p -r1.868 user.module
--- modules/user/user.module	26 Nov 2007 16:36:44 -0000	1.868
+++ modules/user/user.module	7 Dec 2007 23:16:20 -0000
@@ -2178,6 +2178,11 @@ function user_register_submit($form, &$f
     }
 
     user_authenticate($account->name, trim($pass));
+    watchdog('user', 'Session opened for %name.', array('%name' => $account->name));
+    // Update the user table timestamp noting user has logged in.
+    db_query("UPDATE {users} SET login = %d WHERE uid = %d", time(), $account->uid);
+    user_module_invoke('login', $form_state['values'], $account);
+    sess_regenerate();
 
     $form_state['redirect'] = 'user/1/edit';
     return;
@@ -2193,6 +2198,11 @@ function user_register_submit($form, &$f
       _user_mail_notify('register_no_approval_required', $account);
       if (user_authenticate($account->name, trim($pass))) {
         drupal_set_message(t('Registration successful. You are now logged in.'));
+        watchdog('user', 'Session opened for %name.', array('%name' => $account->name));
+        // Update the user table timestamp noting user has logged in.
+        db_query("UPDATE {users} SET login = %d WHERE uid = %d", time(), $account->uid);
+        user_module_invoke('login', $form_state['values'], $account);
+        sess_regenerate();
       }
       $form_state['redirect'] = '';
       return;
Index: modules/user/user.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.pages.inc,v
retrieving revision 1.5
diff -u -p -r1.5 user.pages.inc
--- modules/user/user.pages.inc	4 Dec 2007 18:34:44 -0000	1.5
+++ modules/user/user.pages.inc	7 Dec 2007 23:16:20 -0000
@@ -102,8 +102,9 @@ function user_pass_reset(&$form_state, $
           // Now we can set the new user.
           $user = $account;
           // And proceed with normal login, going to user page.
-          $edit = array();
-          user_module_invoke('login', $edit, $user);
+          watchdog('user', 'Session opened for %name.', array('%name' => $account->name));
+          user_module_invoke('login', $form_state['values'], $account);
+          sess_regenerate();
           drupal_set_message(t('You have just used your one-time login link. It is no longer necessary to use this link to login. Please change your password.'));
           drupal_goto('user/'. $user->uid .'/edit');
         }
