diff --git a/include/class.attachment.php b/include/class.attachment.php
index b787ee25093c3a5b6fcb23cfef08e054c45e50e7..6a904015421c5d1b899927cf9b21b5a4cc79baad 100644
--- a/include/class.attachment.php
+++ b/include/class.attachment.php
@@ -128,7 +128,9 @@ extends InstrumentedList {
                 $fileId = $file;
             elseif (is_array($file) && isset($file['id']))
                 $fileId = $file['id'];
-            elseif ($F = AttachmentFile::upload($file))
+            elseif (isset($file['tmp_name']) && ($F = AttachmentFile::upload($file)))
+                $fileId = $F->getId();
+            elseif ($F = AttachmentFile::create($file))
                 $fileId = $F->getId();
             else
                 continue;
diff --git a/include/class.i18n.php b/include/class.i18n.php
index 02ec028f2259befe0e50008ab675243eafb83bce..f68be50e6d57c00b6088ed2505989e4c21247689 100644
--- a/include/class.i18n.php
+++ b/include/class.i18n.php
@@ -142,10 +142,10 @@ class Internationalization {
         if (($tpl = $this->getTemplate('templates/premade.yaml'))
                 && ($canned = $tpl->getData())) {
             foreach ($canned as $c) {
-                if (($premade = Canned::create($c))
-                        && isset($c['attachments'])) {
+                if (!($premade = Canned::create($c)) || !$premade->save())
+                    continue;
+                if (isset($c['attachments'])) {
                     $premade->attachments->upload($c['attachments']);
-                    $premade->save();
                 }
             }
         }