diff --git a/packages/file-handling/src/dbp-file-handling-clipboard.js b/packages/file-handling/src/dbp-file-handling-clipboard.js
index 86875687a23311822231b2f66146445dfcef3866..0e53ad0f73871fb60cb22d6c25f0c01ec549fb12 100644
--- a/packages/file-handling/src/dbp-file-handling-clipboard.js
+++ b/packages/file-handling/src/dbp-file-handling-clipboard.js
@@ -207,8 +207,10 @@ export class FileHandlingClipboard extends ScopedElementsMixin(DBPLitElement) {
             }
         });
         if (!this.clipboardSource) {
-            window.removeEventListener('beforeunload', this._onReceiveBeforeUnload);
-            window.addEventListener('beforeunload', this._onReceiveBeforeUnload);
+            if(!window.clipboardWarning)  {
+                window.addEventListener('beforeunload', this._onReceiveBeforeUnload, false);
+                window.clipboardWarning = true;
+            }
         }
 
     }
diff --git a/packages/file-handling/src/dbp-nextcloud-file-picker.js b/packages/file-handling/src/dbp-nextcloud-file-picker.js
index 79099ff36ced20d1d5a42d0ac8c55fa4c28a9bba..5ddb0ed6440b9d2d97492dbdfd4b21374f3e5830 100644
--- a/packages/file-handling/src/dbp-nextcloud-file-picker.js
+++ b/packages/file-handling/src/dbp-nextcloud-file-picker.js
@@ -52,6 +52,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
         this.selectAllButton = true;
         this.abortUploadButton = false;
         this.abortUpload = false;
+        this.isSelected = false;
     }
 
     static get scopedElements() {
@@ -87,6 +88,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
             activeDirectoryACL: { type: String, attribute: false },
             selectAllButton: { type: Boolean, attribute: false },
             abortUploadButton: { type: Boolean, attribute: false },
+            isSelected: { type: Boolean, attribute: false },
         };
 
     }
@@ -205,10 +207,10 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                                     this.directoryClicked(e, data);
                                     break;
                                 case "file":
+                                    this.isSelected = this.tabulatorTable.getSelectedRows().length > 0;
                                     if (this.tabulatorTable.getSelectedRows().length === this.tabulatorTable.getRows().filter(row => row.getData().type != 'directory' && this.checkFileType(row.getData(), this.allowedMimeTypes)).length) {
                                         this.selectAllButton = false;
-                                    }
-                                    else {
+                                    } else {
                                         this.selectAllButton = true;
                                     }
                                     break;
@@ -1501,9 +1503,13 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
                 <div class="nextcloud-footer ${classMap({hidden: !this.isPickerActive})}">
                     <div class="nextcloud-footer-grid">
                         <button id="download-button" class="button select-button is-primary ${classMap({hidden: ((!this.directoriesOnly)  || (this.directoriesOnly && this.abortUploadButton && this.forAll))})}"
-                                @click="${() => { this.sendDirectory(this.tabulatorTable.getSelectedData()); }}">${this.folderIsSelected}</button>
+                                @click="${() => { this.sendDirectory(this.tabulatorTable.getSelectedData()); }}" 
+                                ?disabled="${!this.isSelected}">
+                            ${this.folderIsSelected}</button>
                         <button class="button select-button is-primary ${classMap({hidden: this.directoriesOnly})}"
-                                @click="${() => { this.downloadFiles(this.tabulatorTable.getSelectedData()); }}">${i18n.t('nextcloud-file-picker.select-files')}</button>
+                                @click="${() => { this.downloadFiles(this.tabulatorTable.getSelectedData()); }}"
+                                ?disabled="${!this.isSelected}">
+                            ${i18n.t('nextcloud-file-picker.select-files')}</button>
                        <button id="abortButton" class="button select-button hidden ${classMap({"visible": (this.directoriesOnly && this.forAll && this.abortUploadButton)})}"
                                     title="${i18n.t('nextcloud-file-picker.abort')}"  @click="${() => { this.abortUpload = true; }}">${i18n.t('nextcloud-file-picker.abort')}</button>