diff -bruN noreqnewpass.orig noreqnewpass
diff -bruN noreqnewpass.orig/noreqnewpass.install noreqnewpass/noreqnewpass.install
--- noreqnewpass.orig/noreqnewpass.install      1970-01-01 01:00:00.000000000 +0100
+++ noreqnewpass/noreqnewpass.install   2013-05-13 16:13:07.000000000 +0200
@@ -0,0 +1,34 @@
+<?php
+
+/**
+ * @file
+ *   Installation functions for noreqnewpass.
+ *   TODO: All updates need proper error handling and responses
+ */
+
+/**
+ * Implementation of hook_install().
+ *
+ * Ensure that noreqnewpass hooks are invoked after other auth module hooks.
+ */
+function noreqnewpass_install() {
+  $num_updated = db_update('system')
+  ->fields(array(
+    'weight' => 10,
+  ))
+  ->condition('name', 'noreqnewpass')
+  ->execute();
+}
+
+/**
+ * Ensure that noreqnewpass hooks are invoked after other auth module hooks.
+ */
+function noreqnewpass_update_1() {
+  $num_updated = db_update('system')
+  ->fields(array(
+    'weight' => 10,
+  ))
+  ->condition('name', 'noreqnewpass')
+  ->execute();
+}
+
diff -bruN noreqnewpass.orig/noreqnewpass.module noreqnewpass/noreqnewpass.module
--- noreqnewpass.orig/noreqnewpass.module       2013-05-13 16:14:32.917024130 +0200
+++ noreqnewpass/noreqnewpass.module    2013-05-13 16:16:59.755018115 +0200
@@ -62,7 +62,7 @@
     $form['links'] = array('#markup' => theme('item_list', array('items' => $items)));
   }
   
-  if (($form_id == 'user_login_block' || $form_id == 'user_login') && variable_get('noreqnewpass_disabled', true)) {
+  if (($form_id == 'user_login_block' || $form_id == 'user_login') && variable_get('noreqnewpass_disabled', true) && (!module_exists('cas'))) {
     $key = array_search('user_login_final_validate', $form['#validate']);
     $form['#validate'][$key] = 'noreqnewpass_user_login_final_validate';
   }
