--- login_security.module.original  2011-02-24 19:07:57.000000000 -0700
+++ login_security.module 2012-02-14 18:38:03.000000000 -0700
@@ -352,9 +355,17 @@ function login_user_block_user_name($var
  * Helper function to get the variable array for the messages.
  */
 function _login_security_get_variables_by_name($name) {
+
+  // Get account first by name, and if that fails, by email
   $account = user_load(array("name" => $name));
-  $ipaddress = check_plain(ip_address());
+  if (empty($account)) {
+    $account = user_load(array("mail" => $name));
+  }
+
   global $base_url;
+
+  $ipaddress = check_plain(ip_address());
+
   $variables = array(
     '%date' => format_date(time()),
     '%ip' => $ipaddress,
@@ -369,11 +380,12 @@ function _login_security_get_variables_b
     '%user_block_attempts' => variable_get('login_security_user_wrong_count', LOGIN_SECURITY_USER_WRONG_COUNT),
     '%user_ip_current_count' => db_result(db_query("SELECT COUNT(id) FROM {login_security_track} WHERE name = '%s' AND host = '%s'", $name, $ipaddress)),
     '%ip_current_count' => db_result(db_query("SELECT COUNT(id) FROM {login_security_track} WHERE host = '%s'", $ipaddress)),
-    '%user_current_count' => db_result(db_query("SELECT COUNT(id) FROM {login_security_track} WHERE name = '%s'", $name)),
+    '%user_current_count' => db_result(db_query("SELECT COUNT(id) FROM {login_security_track} WHERE name = '%s' OR name = '%s'", $account->name, $account->mail)),
     '%tracking_time' => variable_get('login_security_track_time', LOGIN_SECURITY_TRACK_TIME),
     '%tracking_current_count' => db_result(db_query("SELECT COUNT(id) FROM {login_security_track}")),
     '%activity_threshold' => variable_get('login_security_activity_threshold', LOGIN_SECURITY_ACTIVITY_THRESHOLD),
   );
+
   return $variables;
 }

