diff --git a/ldapauth.module b/ldapauth.module
index 960f037..83b2e0f 100644
--- a/ldapauth.module
+++ b/ldapauth.module
@@ -205,8 +205,11 @@ function ldapauth_form_alter(&$form, $form_state, $form_id) {
 
   switch ($form_id) {
     case 'user_login_block':
-      if (LDAPAUTH_DISABLE_PASS_CHANGE)
+      if (LDAPAUTH_DISABLE_PASS_CHANGE) {
         unset($form['links']);
+        $key = array_search('user_login_final_validate', $form['#validate']);
+        $form['#validate'][$key] = 'ldapauth_user_login_final_validate';
+      }
       break;
     case 'user_profile_form':
       $account = $form["_account"]["#value"];
@@ -235,6 +238,14 @@ function ldapauth_form_alter(&$form, $form_state, $form_id) {
   }
 }
 
+function ldapauth_user_login_final_validate($form_id, &$form_states) {
+  global $user;
+  if (!$user->uid) {
+    form_set_error('name', t('Sorry, unrecognized username or password.'));
+    watchdog('user', t('Login attempt failed for %user.', array('%user' => $form_values['name'])));
+  }
+}
+
 function ldapauth_form_user_pass_alter(&$form, &$form_state) {
  	$form['#validate'][] = 'ldapauth_user_pass';
 }
