diff --git a/urllogin.inc b/urllogin.inc
index ab58756..c09c08f 100644
--- a/urllogin.inc
+++ b/urllogin.inc
@@ -86,14 +86,18 @@ function urllogin_admin_settings() {
  * Validate the urllogin configuration form.
  */
 function urllogin_admin_settings_validate($form, $form_state) {
-  $entry = $form_state['values']['urllogin_codekey'];
-  if (preg_match('@^[0-9]+$@', trim($entry)) != 1) { // test for digits
+  $entry_codekey = $form_state['values']['urllogin_codekey'];
+  if (preg_match('@^[0-9]+$@', trim($entry_codekey)) != 1) { // test for digits
     form_set_error('urllogin_codekey', t('Please enter a positive integer.'));
   }
-  $entry = $form_state['values']['urllogin_codemin'];
-  if (preg_match('@^[0-9]+$@', trim($entry)) != 1) { // test for digits
+  $entry_codemin = $form_state['values']['urllogin_codemin'];
+  if (preg_match('@^[0-9]+$@', trim($entry_codemin)) != 1) { // test for digits
     form_set_error('urllogin_codemin', t('Please enter a positive integer.'));
   }
+
+  if ($entry_codekey < $entry_codemin) {
+    drupal_set_message(t("You probably don't want to have the Minimum validation number to be greater than the Validation number, unless you don't want these codes to be useable at this time. You can enable these codes by setting the Minimum validation number to be less than or equal to @codekey", array('@codekey' => $entry_codekey)),'error');
+  }
 }
 
 /**
@@ -140,10 +144,10 @@ function urllogin_status_page($testuid = 0) {
 /**
  * Tests to see if UID can be logged on.
  *
- * @param $uid
+ * @param int $uid
  *   UID to be tested
  *
- * @param $resultmsg
+ * @param string $resultmsg
  *   Contains resultmsg message if function fails.
  *
  * @return
@@ -172,7 +176,7 @@ function _urllogin_testuid($uid, &$resultmsg) {
 /**
  * Diagnostic test page for setting up urllogin urls.
  *
- * @param $urlstring
+ * @param string $urlstring
  *   login string from URL
  *
  * @return
@@ -182,6 +186,10 @@ function urllogin_test_page($urlstring = 'none') {
   $urlstr = check_plain($urlstring); // sanitize
   $page = "<ul><li>Initial URL string = [$urlstr]</li>";
   $resultmsg = "";
+    if (urllogin_passphrase() == 'passphrase' || urllogin_passphrase() == 'change this to your passphrase') {
+    watchdog('urllogin', 'Passphrase has not been configured', array(), WATCHDOG_WARNING);
+    return t('Passphrase has not been configured to a unique value - <a href="@config">configure here</a>.', array('@config' => url('admin/config/people/urllogin')));
+  }
   $uid = urllogin_decode($urlstr,
     variable_get('urllogin_codekey', 20110531),
     variable_get('urllogin_codemin', 20110531),
@@ -227,7 +235,7 @@ function urllogin_test_page($urlstring = 'none') {
 /**
  * This is the function that actually performs the login.
  *
- * @param $urlstring
+ * @param string $urlstring
  *   login string from URL
  *
  * The function first validates the URL login string.
@@ -240,6 +248,10 @@ function urllogin_link_page($urlstring = 'none') {
   $urlstr = check_plain($urlstring); // sanitize
   $resultmsg = "";
   global $user;
+  if (urllogin_passphrase() == 'passphrase' || urllogin_passphrase() == 'change this to your passphrase') {
+    watchdog('urllogin', 'Passphrase has not been configured', array(), WATCHDOG_WARNING);
+    drupal_goto('');
+  }
   $uid = urllogin_decode($urlstr,
     variable_get('urllogin_codekey', 20110531),
     variable_get('urllogin_codemin', 20110531),
diff --git a/urllogin.install b/urllogin.install
index fb2f600..46b98c0 100644
--- a/urllogin.install
+++ b/urllogin.install
@@ -17,3 +17,30 @@ function urllogin_uninstall() {
   variable_del('urllogin_useprofile');
 }
 
+/**
+ * Implements hook_requirements().
+ *
+ * We'll use this to detect all the requirements for the module are in place.
+ */
+function urllogin_requirements($phase) {
+  $requirements = array();
+  if ($phase == 'runtime') {
+    // Make sure the urllogin passphrase has been set.
+    if (urllogin_passphrase() == 'passphrase' || urllogin_passphrase() == 'change this to your passphrase' || !strlen(urllogin_passphrase()) ) {
+      $requirements['urllogin_passphrase'] = array(
+        'title' => t('URL Login passphrase'),
+        'value' => t('Not configured'),
+        'description' => t('Please <a href="@config">set a distinct passphrase for urllogin</a> or set it in settings.php. See urllogin/README.txt for more details.', array('@config' => url('admin/config/people/urllogin'))),
+        'severity' => REQUIREMENT_ERROR,
+      );
+    }
+    else {
+      $requirements['urllogin_passphrase'] = array(
+        'title' => t('URL Login passphrase'),
+        'value' => t('Configured: @passphrase', array('@passphrase' => urllogin_passphrase())),
+        'severity' => REQUIREMENT_OK,
+      );
+    }
+  }
+  return $requirements;
+}
