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 bc314511fd1b511cc2c3a71df43cbbfb0d14dd85..3d903f6835a9ad0930d800db38fbaac6af5f8598 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
@@ -486,12 +486,15 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat
 
         // TODO: real cleanup action
 
+        final File recoveryFile = state.getGlobalState().getStorageRecoveryManager().getRecoveryFileFromMarker(recoveryMarkerFile);
+        
         IDelegatedActionWithResult<Boolean> recoveryMarkerFileCleanupAction =
                 new IDelegatedActionWithResult<Boolean>()
                     {
                         public Boolean execute(boolean didOperationSucceed)
                         {
                             recoveryMarkerFile.delete();
+                            recoveryFile.delete();
                             return true;
                         }
                     };
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryManager.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryManager.java
index 75d4bf32c8264be9c4e293b1471e53b3e0b29c56..245dd7dd035eb534d5951077089a39c0f3b1707e 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryManager.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryManager.java
@@ -64,13 +64,19 @@ public class DataSetStorageRecoveryManager implements IDataSetStorageRecoveryMan
         return new File(dropboxRecoveryStateDir, incomingFileName + PRECOMMIT_SERIALIZED);
     }
 
+    public File getRecoveryFileFromMarker(File markerFile)
+    {
+        // trim is necessary as it reads the \n at the end of the file
+        String recoveryFilePath = FileUtilities.loadToString(markerFile).trim();
+        return new File(recoveryFilePath);
+    }
+    
     @SuppressWarnings("unchecked")
     public <T extends DataSetInformation> DataSetStoragePrecommitRecoveryState<T> extractPrecommittedCheckpoint(
             File markerFile)
     {
-        // trim is necessary as it reads the \n at the end of the file
-        String recoveryFilePath = FileUtilities.loadToString(markerFile).trim();
-        return FileUtilities.loadToObject(new File(recoveryFilePath),
+        File recoveryFile = getRecoveryFileFromMarker(markerFile);
+        return FileUtilities.loadToObject(recoveryFile,
                 DataSetStoragePrecommitRecoveryState.class);
     }
 
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetStorageRecoveryManager.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetStorageRecoveryManager.java
index 9b8d683600364e39cd251411caba64d04e5e57f3..44d2fe431855cde5d1cadc400edf2e08cf1cfbe8 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetStorageRecoveryManager.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetStorageRecoveryManager.java
@@ -50,9 +50,17 @@ public interface IDataSetStorageRecoveryManager
     <T extends DataSetInformation> DataSetStoragePrecommitRecoveryState<T> extractPrecommittedCheckpoint(
             File markerFile);
 
+    /**
+     * Extracts the recovery file from the marker file
+     */
+    File getRecoveryFileFromMarker(File markerFile);
+    
     // Simple helper methods
     boolean canRecoverFromError(Throwable ex);
 
+    /**
+     * checks whether the file is a proper recovery marker file
+     */
     boolean isRecoveryFile(File file);
 
     void setDropboxRecoveryStateDir(File dropboxRecoveryStateDir);