Index: modules/user/user.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.pages.inc,v
retrieving revision 1.48
diff -u -r1.48 user.pages.inc
--- modules/user/user.pages.inc	12 Aug 2009 12:36:05 -0000	1.48
+++ modules/user/user.pages.inc	17 Aug 2009 22:47:05 -0000
@@ -78,9 +78,17 @@
 function user_pass_reset(&$form_state, $uid, $timestamp, $hashed_pass, $action = NULL) {
   global $user;
 
-  // Check if the user is already logged in. The back button is often the culprit here.
+  // When processing the one-time login link, we have to make sure that the user
+  // already isn't logged in.
   if ($user->uid) {
-    drupal_set_message(t('You have already used this one-time login link. It is not necessary to use this link to login anymore. You are already logged in.'));
+    // The existing user already used the one-time login link.
+    if ($user->uid == $uid) {
+      drupal_set_message(t("You are logged in as %user. <a href='!link'>Change your password.</a>", array('%user' => $user->name, '!link' => url("user/{$user->uid}/edit"))));
+    }
+    // A different user is already logged in on the computer.
+    else {
+      drupal_set_message(t("Someone else is already logged into the site on this computer. Please <a href='!link'>logout</a> and try using the link again.", array('!link' => url('logout'))));
+    }
     drupal_goto();
   }
   else {
