diff --git a/packages/file-handling/src/fileupload.js b/packages/file-handling/src/fileupload.js
index 22b2bfb3312012fe2be38a4cbf900720bd65ba2a..cce23f46799e8fd1f7fb8e2729d35960a2e7c2f0 100644
--- a/packages/file-handling/src/fileupload.js
+++ b/packages/file-handling/src/fileupload.js
@@ -8,6 +8,24 @@ import * as commonUtils from "vpu-common/utils";
 import {Icon, MiniSpinner} from 'vpu-common';
 import * as commonStyles from 'vpu-common/styles';
 
+
+function mimeTypesToAccept(mimeTypes) {
+    // Some operating systems can't handle mime types and
+    // need file extensions, this tries to add them for some..
+    let mapping = {
+        'application/pdf': ['.pdf'],
+    };
+    let accept = [];
+    mimeTypes.split(',').forEach((mime) => {
+        accept.push(mime);
+        if (mime.trim() in mapping) {
+            accept = accept.concat(mapping[mime.trim()]);
+        }
+    });
+    return accept.join(',');
+}
+
+
 /**
  * KnowledgeBaseWebPageElementView web component
  */
@@ -352,7 +370,7 @@ export class FileUpload extends ScopedElementsMixin(VPULitElement) {
                            type="file"
                            id="fileElem"
                            multiple
-                           accept="${this.allowedMimeTypes}"
+                           accept="${mimeTypesToAccept(this.allowedMimeTypes)}"
                            name='file'>
                     <label class="button is-primary" for="fileElem" ?disabled="${this.disabled}">
                         <vpu-icon style="display: ${this.uploadInProgress ? "inline-block" : "none"}" name="lock"></vpu-icon>