diff --git a/ui-eln-lims/src/core-plugins/eln-lims/1/dss/drop-boxes/eln-lims-dropbox/eln-lims-dropbox.py b/ui-eln-lims/src/core-plugins/eln-lims/1/dss/drop-boxes/eln-lims-dropbox/eln-lims-dropbox.py
index 0dd602446e90f1095976ab52c2f135df6762e38a..97b241960341fdc57a501fe631cd37a2b73b55f4 100644
--- a/ui-eln-lims/src/core-plugins/eln-lims/1/dss/drop-boxes/eln-lims-dropbox/eln-lims-dropbox.py
+++ b/ui-eln-lims/src/core-plugins/eln-lims/1/dss/drop-boxes/eln-lims-dropbox/eln-lims-dropbox.py
@@ -32,8 +32,14 @@ def process(transaction):
     incoming = transaction.getIncoming();
     folderName = substring_up_to_hash(incoming.getName());
     emailAddress = None
+    discardHiddenFiles = transaction.getGlobalState().getThreadParameters().discardHiddenFiles()
 
     try:
+        if discardHiddenFiles:
+            hiddenFiles = getHiddenFiles(incoming)
+            for filePath in hiddenFiles:
+                deleteFiles(filePath)
+
         if not folderName.startswith('.'):
             datasetInfo = folderName.split("+");
             entityKind = None;
@@ -89,7 +95,7 @@ def process(transaction):
                     raise UserFailureException(INVALID_FORMAT_ERROR_MESSAGE + ":" + FAILED_TO_PARSE_SAMPLE_ERROR_MESSAGE);
 
                 hiddenFiles = getHiddenFiles(incoming)
-                if hiddenFiles:
+                if hiddenFiles and not discardHiddenFiles:
                     reportIssue(HIDDEN_FILES_ERROR_MESSAGE + ":" + FAILED_TO_PARSE_SAMPLE_ERROR_MESSAGE + ":\n" + pathListToStr(hiddenFiles))
 
                 illegalFiles = getIllegalFiles(incoming)
@@ -126,7 +132,7 @@ def process(transaction):
                     raise UserFailureException(INVALID_FORMAT_ERROR_MESSAGE + ":" + FAILED_TO_PARSE_EXPERIMENT_ERROR_MESSAGE);
 
                 hiddenFiles = getHiddenFiles(incoming)
-                if hiddenFiles:
+                if hiddenFiles and not discardHiddenFiles:
                     reportIssue(HIDDEN_FILES_ERROR_MESSAGE + ":" + FAILED_TO_PARSE_EXPERIMENT_ERROR_MESSAGE + ":\n" + pathListToStr(hiddenFiles))
 
                 illegalFiles = getIllegalFiles(incoming)
@@ -188,7 +194,7 @@ def process(transaction):
                 try:
                     for inputFile in filesInFolder:
                         Files.move(inputFile.toPath(), Paths.get(tmpPath, inputFile.getName()),
-                                   StandardCopyOption.ATOMIC_MOVE);
+                                    StandardCopyOption.ATOMIC_MOVE);
                     transaction.moveFile(tmpDir.getAbsolutePath(), dataSet);
                 finally:
                     if tmpDir is not None:
@@ -252,6 +258,17 @@ def getHiddenFiles(folder):
     return result
 
 
+def deleteFiles(stringPath):
+    file = File(stringPath)
+    if not file.exists():
+        return
+    listFiles = file.listFiles()
+    if not listFiles is None:
+        for child in listFiles:
+            deleteFiles(str(child.getAbsolutePath()))
+    Files.delete(Paths.get(stringPath))
+
+
 def getIllegalFiles(folder):
     result = []
     if folder.getName() in ILLEGAL_FILES:
diff --git a/ui-eln-lims/src/core-plugins/eln-lims/1/dss/drop-boxes/eln-lims-dropbox/plugin.properties b/ui-eln-lims/src/core-plugins/eln-lims/1/dss/drop-boxes/eln-lims-dropbox/plugin.properties
index 4e99fd7a81bb1915938134d68331cb010b9a567a..3cabc20155abbc0179752023dc5b3f12f44b55a8 100644
--- a/ui-eln-lims/src/core-plugins/eln-lims/1/dss/drop-boxes/eln-lims-dropbox/plugin.properties
+++ b/ui-eln-lims/src/core-plugins/eln-lims/1/dss/drop-boxes/eln-lims-dropbox/plugin.properties
@@ -7,3 +7,4 @@ incoming-share-id = ${default-incoming-share-id:1}
 incoming-share-minimum-free-space-in-gb = ${default-incoming-share-minimum-free-space-in-gb:1}
 h5-folders = ${dataset-uploader.h5-folders:false}
 h5ar-folders = ${dataset-uploader.h5ar-folders:true}
+discard-hidden-files = true