diff --git a/src/utils.js b/src/utils.js
index f6ecedb659cc50a622200e64bd69f5ae217e59dc..9542c6c6ce05e7c04bc703d4b9bef411cbf45d50 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -44,3 +44,14 @@ export const getDataURIContentType = (dataURI) => {
 
     return dataURI.substring(5, base64Index);
 };
+
+export const baseName = (str) =>
+{
+    let base = String(str).substring(str.lastIndexOf('/') + 1);
+
+    if(base.lastIndexOf(".") !== -1) {
+        base = base.substring(0, base.lastIndexOf("."));
+    }
+
+    return base;
+};
diff --git a/src/vpu-signature-pdf-upload.js b/src/vpu-signature-pdf-upload.js
index f538449d3581fd5e57992616675ebd82c014bf27..133a55af12cc04ea4a6ce599899ed82ed853798b 100644
--- a/src/vpu-signature-pdf-upload.js
+++ b/src/vpu-signature-pdf-upload.js
@@ -102,12 +102,19 @@ class SignaturePdfUpload extends VPUSignatureLitElement {
         // see: https://stuk.github.io/jszip/
         let zip = new JSZip();
         const that = this;
+        let fileNames = [];
 
         // add all signed pdf files
         this.files.forEach((file) => {
-            console.log(file);
-            // TODO: check for duplicate file names
-            zip.file(file.fileName, utils.getPDFFileBase64Content(file), {base64: true});
+            let fileName = file.fileName;
+
+            //
+            if (fileNames.indexOf(fileName) !== -1) {
+                fileName = utils.baseName(fileName) + "-" + Math.random().toString(36).substring(7) + ".pdf";
+            }
+
+            fileNames.push(fileName);
+            zip.file(fileName, utils.getPDFFileBase64Content(file), {base64: true});
         });
 
         zip.generateAsync({type:"blob"})