Index: modules/user/user.pages.inc
===================================================================
--- modules/user/user.pages.inc	(revision 682)
+++ modules/user/user.pages.inc	(working copy)
@@ -43,7 +43,7 @@ function user_pass() {
 
 function user_pass_validate($form, &$form_state) {
   $name = trim($form_state['values']['name']);
-  
+
   // Blocked accounts cannot request a new password,
   // check provided username and email against access rules.
   if (drupal_is_denied('user', $name) || drupal_is_denied('mail', $name)) {
@@ -83,11 +83,16 @@ function user_pass_submit($form, &$form_state) {
 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.
-  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.'));
+  // See if the user is aleady logged in with this uid
+  if ($user->uid && $user->uid == $uid) {
+    drupal_set_message(t('You are already logged in as %user so you don\'t need to use the one-time login link you clicked',array('%user'=>$user->name)));
     drupal_goto();
   }
+  // Or if somebody else is logged in
+  else if ($user->uid && $user->uid != $uid) {
+    drupal_set_message(t('Someone 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 {
     // Time out, in seconds, until login URL expires. 24 hours = 86400 seconds.
     $timeout = 86400;
