diff --git a/include/class.canned.php b/include/class.canned.php
index a7154b974ef56d877c1bead681c8cb9fd4e081f2..8cea1417b459d75d7dc5a53c5c2a2600a9833595 100644
--- a/include/class.canned.php
+++ b/include/class.canned.php
@@ -117,6 +117,10 @@ class Canned {
                     $resp['response'] = Format::html2text($resp['response'], 90);
                     $resp['files'] += $this->attachments->getInlines();
                 }
+
+                foreach ($resp['files'] as $f)
+                    $_SESSION[':cannedFiles'][$f['file_id']] = 1;
+
                 return Format::json_encode($resp);
                 break;
             case 'html':
diff --git a/include/class.forms.php b/include/class.forms.php
index 91cf301fa11ec93db7c27a748842f88897c5284c..770736e84355c8432d84c7e69aa1cc8d14b7c0ab 100644
--- a/include/class.forms.php
+++ b/include/class.forms.php
@@ -2223,6 +2223,11 @@ class FileUploadWidget extends Widget {
             if (isset($_SESSION[':uploadedFiles'])) {
                 $allowed += $_SESSION[':uploadedFiles'];
             }
+
+            // Canned attachments initiated by this session
+            if (isset($_SESSION[':cannedFiles']))
+               $allowed += $_SESSION[':cannedFiles'];
+
             foreach ($files as $i=>$F) {
                 if (!isset($allowed[$F])) {
                     unset($files[$i]);