diff --git a/logintoboggan.module b/logintoboggan.module
index cf23f30..bc7d63f 100755
--- a/logintoboggan.module
+++ b/logintoboggan.module
@@ -546,7 +546,7 @@ function logintoboggan_user_register_submit($form, &$form_state) {
  */
 function logintoboggan_user_login_validate($form, &$form_state) {
   if (isset($form_state['values']['name']) && $form_state['values']['name']) {
-    if ($name = db_query("SELECT name FROM {users} WHERE LOWER(mail) = LOWER(:name)", array(
+    if ($name = db_query("SELECT name FROM {users} WHERE mail = :name", array(
       ':name' => $form_state['values']['name'],
     ))->fetchField()) {
       form_set_value($form['name'], $name, $form_state);
@@ -590,14 +590,14 @@ function logintoboggan_user_edit_validate($form, &$form_state) {
   if (variable_get('logintoboggan_login_with_email', 0)) {
     $uid = isset($account->uid) ? $account->uid : 0;
     // Check that no user is using this name for their email address.
-    if (isset($edit['name']) && db_query("SELECT uid FROM {users} WHERE LOWER(mail) = LOWER(:mail) AND uid <> :uid", array(
+    if (isset($edit['name']) && db_query("SELECT uid FROM {users} WHERE mail = :mail AND uid <> :uid", array(
       ':mail' => $edit['name'],
       ':uid' => $uid,
     ))->fetchField()) {
       form_set_error('name', t('This name has already been taken by another user.'));
     }
     // Check that no user is using this email address for their name.
-    if (isset($edit['mail']) && db_query("SELECT uid FROM {users} WHERE LOWER(name) = LOWER(:name) AND uid <> :uid", array(
+    if (isset($edit['mail']) && db_query("SELECT uid FROM {users} WHERE name = :name AND uid <> :uid", array(
       ':name' => $edit['mail'],
       ':uid' => $uid,
     ))->fetchField()) {
@@ -993,6 +993,7 @@ function _logintoboggan_process_validation($account) {
   // roles, and to prepare for the possible user_save() below.
   $account = user_load($account->uid, TRUE);
 
+
   // Allow other modules to react to email validation by invoking the user update hook.
   // This should only be triggered if LT's custom validation is active.
   if (!variable_get('user_email_verification', TRUE)) {
@@ -1000,6 +1001,11 @@ function _logintoboggan_process_validation($account) {
     $account->logintoboggan_email_validated = TRUE;
     user_module_invoke('update', $edit, $account);
   }
+  
+  else if (module_exists('logintoboggan_rules')) {
+    $account->logintoboggan_email_validated = TRUE;
+    logintoboggan_rules_user_update($edit, $account); 
+  }
 }
 
 /**
