diff --git a/components/file.inc b/components/file.inc
index 2b686cb..cff7245 100644
--- a/components/file.inc
+++ b/components/file.inc
@@ -504,6 +504,8 @@ function webform_file_usage_adjust($submission) {
   if (isset($submission->file_usage)) {
     $files = file_load_multiple($submission->file_usage['added_fids']);
     foreach ($files as $file) {
+      $file->status = 1;
+      file_save($file);
       file_usage_add($file, 'webform', 'submission', $submission->sid);
     }
 
diff --git a/webform.install b/webform.install
index 9c5bd6d..19dacf4 100644
--- a/webform.install
+++ b/webform.install
@@ -824,3 +824,10 @@ function webform_update_7319(&$sandbox) {
     $sandbox['#finished'] = $sandbox['progress'] / $sandbox['max'];
   }
 }
+
+/**
+ * Mark files uploaded through Webform that report active usage permanent.
+ */
+function webform_update_7320() {
+  db_query("UPDATE {file_managed} SET status = 1 WHERE fid IN (SELECT fid FROM {file_usage} WHERE module = :module_name)", array(':module_name' => 'webform'));
+}
