diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java
index cb044d7cb8717675f2e13696ca73be64240a6b99..61da40fc4c23097c3dfc768350947f6d019edabc 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java
@@ -332,6 +332,7 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat
         {
             incomingDataSetFile =
                     state.getMarkerFileUtility().getIncomingDataSetPathFromMarker(isFinishedFile);
+            
             markerFileCleanupAction = new IDelegatedActionWithResult<Boolean>()
                 {
                     public Boolean execute(boolean didOperationSucceed)
@@ -348,21 +349,24 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat
             markerFileCleanupAction = new DoNothingDelegatedAction();
         }
 
+        //read from configuration prestaging parameter.
         DataSetRegistrationPreStagingBehavior preStagingUsage =
                 state.getGlobalState().getThreadParameters()
                         .getDataSetRegistrationPreStagingBehavior();
 
+        
         if (preStagingUsage == DataSetRegistrationPreStagingBehavior.USE_ORIGINAL)
         {
             DataSetFile incoming = new DataSetFile(incomingDataSetFile);
             handle(incoming, null, new NoOpDelegate(), markerFileCleanupAction);
         } else
         {
-            // Make a hardlink copy of the file
+            // If we should the prestaging phase, we make a hardlink copy in prestaging area
             File copyOfIncoming = copyIncomingFileToPreStaging(incomingDataSetFile);
 
             DataSetFile dsf = new DataSetFile(incomingDataSetFile, copyOfIncoming);
 
+            // For cleanup we use the postRegistrationCleanUpAction wich clears the prestaging area.
             PostRegistrationCleanUpAction cleanupAction =
                     new PostRegistrationCleanUpAction(dsf, markerFileCleanupAction);
             handle(dsf, null, new NoOpDelegate(), cleanupAction);
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithm.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithm.java
index d0ad641687773f79d2de0491c0aa3b08995a51a4..9b453efdb2082d92371f2d86341b98394cda1c9d 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithm.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithm.java
@@ -440,10 +440,10 @@ public class DataSetStorageAlgorithm<T extends DataSetInformation>
 
             transactionStoreData();
 
-            moveFilesFromStagingToStore();
+            moveFilesFromStagingToPrecommit();
         }
 
-        private void moveFilesFromStagingToStore()
+        private void moveFilesFromStagingToPrecommit()
         {
             File stagedStoredDataDirectory = transaction.getStoredDataDirectory();
             assert stagedStoredDataDirectory != null : "The folder that contains the stored data should not be null.";
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java
index 176e24b6b867a94527634b2a79f5a0d36159e3b4..be3f96be55802102edd3a4282297fdc526f03060 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java
@@ -237,12 +237,7 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation>
 
         try
         {
-            for (DataSetStorageAlgorithm<T> storageAlgorithm : dataSetStorageAlgorithms)
-            {
-                String dataSetCode = storageAlgorithm.getDataSetInformation()
-                        .getDataSetCode();
-                openBISService.setStorageConfirmed(dataSetCode);
-            }
+            confirmStorageInApplicationServer();
 
             dssRegistrationLog.log("Storage has been confirmed in openBIS Application Server.");
         } catch (final Exception ex)
@@ -262,6 +257,16 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation>
 
     }
 
+    private void confirmStorageInApplicationServer()
+    {
+        for (DataSetStorageAlgorithm<T> storageAlgorithm : dataSetStorageAlgorithms)
+        {
+            String dataSetCode = storageAlgorithm.getDataSetInformation()
+                    .getDataSetCode();
+            openBISService.setStorageConfirmed(dataSetCode);
+        }
+    }
+
     private void logPreCommitMessage()
     {
         // Use the precommit folder to create an informative message