diff --git a/packages/file-handling/src/file-source.js b/packages/file-handling/src/file-source.js
index c3c397a8d8c07dce128e9495d7bd984c53a18d71..c6cf55423b4437b8beac7676f585cc1f758eae49 100644
--- a/packages/file-handling/src/file-source.js
+++ b/packages/file-handling/src/file-source.js
@@ -82,9 +82,11 @@ export class FileSource extends ScopedElementsMixin(VPULitElement) {
                     break;
                 case "isDialogOpen":
                     if (this.isDialogOpen) {
+                        // this.setAttribute("dialog-open", "");
                         this.openDialog();
                     } else {
                         this.removeAttribute("dialog-open");
+                        // this.closeDialog();
                     }
 
                     break;
@@ -184,6 +186,8 @@ export class FileSource extends ScopedElementsMixin(VPULitElement) {
 
         // this.dispatchEvent(new CustomEvent("vpu-file-source-selection-finished",
         //     { "detail": {}, bubbles: true, composed: true }));
+
+        this.closeDialog();
     }
 
     /**
@@ -292,12 +296,16 @@ export class FileSource extends ScopedElementsMixin(VPULitElement) {
 
     openDialog() {
         console.log("openDialog");
-        console.log(this._('#modal-picker'));
         MicroModal.show(this._('#modal-picker'), {
             onClose: modal => { this.isDialogOpen = false; }
         });
     }
 
+    closeDialog() {
+        console.log("closeDialog");
+        MicroModal.close();
+    }
+
     static get styles() {
         // language=css
         return css`