diff --git a/honeypot.api.php b/honeypot.api.php
index 72fe15a..3fdc386 100644
--- a/honeypot.api.php
+++ b/honeypot.api.php
@@ -47,6 +47,24 @@ function hook_honeypot_add_form_protection($options, $form) {
 }
 
 /**
+ * React to the rejection of a form submission.
+ *
+ * When honeypot rejects a form submission, it calls this hook with the form ID
+ * and the user ID (0 if anonymous) of the user that was disallowed from
+ * submitting the form.
+ *
+ * @param (string) $form_id
+ *   Form ID of the form the user was disallowed from submitting.
+ * @param (int) $uid
+ *   0 for anonymous users, otherwise the user ID of the user.
+ */
+function hook_honeypot_reject($form_id, $uid) {
+  if ($form_id == 'mymodule_form') {
+    // Do something...
+  }
+}
+
+/**
  * Add time to the Honeypot time limit.
  *
  * In certain circumstances (for example, on forms routinely targeted by
diff --git a/honeypot.module b/honeypot.module
index deca3b4..6842184 100644
--- a/honeypot.module
+++ b/honeypot.module
@@ -233,7 +233,7 @@ function _honeypot_time_restriction_validate($form, &$form_state) {
  *     - 'honeypot_time'
  */
 function _honeypot_log($form_id, $type) {
-  honeypot_log_failure();
+  honeypot_log_failure($form_id);
   if (variable_get('honeypot_log', 0)) {
     $variables = array(
         '%form'  => $form_id,
@@ -280,9 +280,13 @@ function honeypot_get_time_limit($form_values = array()) {
 
 /**
  * Log the failed submision with timestamp.
+ *
+ * @param $form_id
+ *   Form ID for the rejected form submission.
  */
-function honeypot_log_failure() {
+function honeypot_log_failure($form_id) {
   global $user;
+
   // Log failed submissions for authenticated users.
   if ($user->uid) {
     db_insert('honeypot_user')
@@ -296,4 +300,7 @@ function honeypot_log_failure() {
   else {
     flood_register_event('honeypot');
   }
+
+  // Allow other modules to react to honeypot rejections.
+  module_invoke_all('honeypot_reject', $form_id, $user->uid);
 }
