diff --git webform_protected_downloads.module webform_protected_downloads.module
index bf9a728..36c6889 100644
--- webform_protected_downloads.module
+++ webform_protected_downloads.module
@@ -578,7 +578,7 @@ function webform_protected_downloads_process_submissions($form, &$form_state) {
   // create hash, calculate expiration timestamp
   $hash = webform_protected_downloads_create_hash();
   $processed = time();
-  $expires = $processed + $conf->expiration_download;
+  $expires = $conf->expiration_download == 0 ? 0 : $processed + $conf->expiration_download;
   
   // we need to save before sending the mail
   $record = array(
diff --git webform_protected_downloads.page.inc webform_protected_downloads.page.inc
index 2a1ff09..b52536a 100644
--- webform_protected_downloads.page.inc
+++ webform_protected_downloads.page.inc
@@ -164,7 +164,7 @@ function webform_protected_downloads_hash_is_valid($hash) {
   }
   else {
     // otherwise we grant access if the hash has not yet expired
-    return $access->expires > time();
+    return ($access->expires == 0) || $access->expires > time();
   }
   
   return FALSE;