diff --git a/webform_protected_downloads.module b/webform_protected_downloads.module
index adad91d..9db401d 100644
--- a/webform_protected_downloads.module
+++ b/webform_protected_downloads.module
@@ -780,6 +780,10 @@ function webform_protected_downloads_process_submissions($form, &$form_state) {
   $sid = $form_state['values']['details']['sid'];
   $nid = $form_state['values']['details']['nid'];
 
+  if ( webform_protected_downloads_is_duplicate( $sid ) ) {
+    return;
+  }
+
   // check whether the node has protected files, otherwise we can skip the
   // following steps
   if (!webform_protected_downloads_node_has_protected_files($nid)) {
@@ -823,6 +827,17 @@ function webform_protected_downloads_process_submissions($form, &$form_state) {
 
 }
 
+function webform_protected_downloads_is_duplicate( $sid ) {
+  $result = db_query(
+    'SELECT wpd.sid
+    FROM {wpd_access_hashes} wpd WHERE wpd.sid = :sid', 
+    array(
+      ':sid' => $sid
+    )
+  );
+  return $result->rowCount() > 0;
+}
+
 /**
  * Create a hash that users can use to access the download page
  *
