diff --git a/login_security.module b/login_security.module
index 70b47fe..ae9d2f1 100644
--- a/login_security.module
+++ b/login_security.module
@@ -233,10 +233,17 @@ function login_security_validate($form, &$form_state) {
   $messages = drupal_get_messages('error', FALSE);
 
   if (!empty($messages['error'])) {
-    $password_message = preg_grep("/<a href=\"\/user\/password\?name=$name\">Have you forgotten your password\?<\/a>/", $messages['error']);
-    $block_message = preg_grep("/The username <em class=\"placeholder\">$name<\/em> has not been activated or is blocked./", $messages['error']);
-
-    if (!count($password_message) || !count($block_message)) {
+    foreach ('\\^$.[]|()?*+{}/' as $meta) {
+      $pattern_sanitizer[$meta] = "\\$meta";
+    }
+    $password_message = t('Sorry, unrecognized username or password. <a href="@password">Have you forgotten your password?</a>', array('@password' => url('user/password', array('query' => array('name' => $name)))));
+    $password_message = strtr($password_message, $pattern_sanitizer);
+    $password_message = preg_grep('/' . $password_message . '/', $messages['error']);
+    $block_message = t('/The username <em class="placeholder">@name</em> has not been activated or is blocked.', array('@name' => $name));
+    $block_message = strtr($block_message, $pattern_sanitizer);
+    $block_message = preg_grep('/' . $block_message . '/', $messages['error']);
+
+    if (count($password_message) || count($block_message)) {
       if (variable_get('login_security_disable_core_login_error', LOGIN_SECURITY_DISABLE_CORE_LOGIN_ERROR)) {
         // Resets the form error status so no form fields are highlighted in
         // red.
 
