diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/DefaultStorageProcessor.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/DefaultStorageProcessor.java
index 1da91cf3c3afd8544e84deed3088a1fecf1721d0..a3fd0e2cee440783fb382d319bd2c5af14a60bd9 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/DefaultStorageProcessor.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/DefaultStorageProcessor.java
@@ -50,6 +50,10 @@ public class DefaultStorageProcessor extends AbstractStorageProcessor implements
 
     static final String DELETE_UNZIPPED_KEY = "delete_unzipped";
 
+    // the following flag is introduced to be used in cases like openbis sync where we download the data set files including the 'original' folder
+    // and then move all of them to the data store. This way, the thumbnail archives in screening instances will also be handled.
+    static final String DO_NOT_CREATE_ORIGINAL_DIR_KEY = "do-not-create-original-dir";
+
     private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION,
             DefaultStorageProcessor.class);
 
@@ -57,12 +61,15 @@ public class DefaultStorageProcessor extends AbstractStorageProcessor implements
 
     private final boolean deleteUnzipped;
 
+    private final boolean doNotCreateOriginalDir;
+
     public DefaultStorageProcessor(final Properties properties)
     {
         super(properties);
 
         unzip = PropertyUtils.getBoolean(properties, UNZIP_CRITERIA_KEY, false);
         deleteUnzipped = PropertyUtils.getBoolean(properties, DELETE_UNZIPPED_KEY, true);
+        doNotCreateOriginalDir = PropertyUtils.getBoolean(properties, DO_NOT_CREATE_ORIGINAL_DIR_KEY, false);
     }
 
     //
@@ -88,6 +95,8 @@ public class DefaultStorageProcessor extends AbstractStorageProcessor implements
 
         protected final UnstoreDataAction unstoreDataAction;
 
+        private final boolean doNotCreateOriginalDir;
+
         public DefaultStorageProcessorTransaction(StorageProcessorTransactionParameters parameters,
                 DefaultStorageProcessor processor)
         {
@@ -95,19 +104,25 @@ public class DefaultStorageProcessor extends AbstractStorageProcessor implements
             this.unzip = processor.unzip;
             this.deleteUnzipped = processor.deleteUnzipped;
             this.unstoreDataAction = processor.getDefaultUnstoreDataAction(null);
+            this.doNotCreateOriginalDir = processor.doNotCreateOriginalDir;
         }
 
         @Override
         protected File executeStoreData(ITypeExtractor typeExtractor, IMailClient mailClient)
         {
             checkParameters(incomingDataSetDirectory, rootDirectory);
-            File originalDir = getOriginalDirectory(rootDirectory);
-            if (originalDir.mkdir() == false)
+            File targetDir = rootDirectory;
+            if (doNotCreateOriginalDir == false)
             {
-                throw new EnvironmentFailureException("Couldn't create "
-                        + originalDir.getAbsolutePath());
+                File originalDir = getOriginalDirectory(rootDirectory);
+                if (originalDir.mkdir() == false)
+                {
+                    throw new EnvironmentFailureException("Couldn't create "
+                            + originalDir.getAbsolutePath());
+                }
+                targetDir = originalDir;
             }
-            final File targetFile = new File(originalDir, incomingDataSetDirectory.getName());
+            final File targetFile = new File(targetDir, incomingDataSetDirectory.getName());
             if (FileRenamer.renameAndLog(incomingDataSetDirectory, targetFile) == false)
             {
                 throw new EnvironmentFailureException(String.format(NO_RENAME,
@@ -116,7 +131,7 @@ public class DefaultStorageProcessor extends AbstractStorageProcessor implements
             // Set the stored data directory in case unzip throws an exception.
             this.storedDataDirectory = rootDirectory;
 
-            unzipIfMatching(targetFile, originalDir);
+            unzipIfMatching(targetFile, targetDir);
             return rootDirectory;
         }