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 a89082910e8b4cd361fe60abae52c63893917308..70abfd36250a0211913a57780c311fd88dbf34e3 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
@@ -515,6 +515,12 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat
                                 recoveryMarkerFile.delete();
                                 recoveryFile.delete();
                             }
+                            else {
+                                // this replaces the recovery file with a new one with increased count
+                                //FIXME: is this safe operation (how to assure, that it won't corrupt the recoveryMarkerFile?)
+                                recoveryInfo.increaseTryCount();
+                                recoveryInfo.writeToFile(recoveryMarkerFile);
+                            }
                             return true;
                         }
                     };
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryInfo.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryInfo.java
index a029fed1790a47ec6d980e9382fd099a03205e99..537f57fe6cbdea12f5cd4c6e1e37e57c24023674 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryInfo.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryInfo.java
@@ -20,13 +20,7 @@ import java.io.File;
 import java.io.Serializable;
 import java.util.Date;
 
-import org.apache.log4j.Logger;
-
-import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.common.filesystem.FileUtilities;
-import ch.systemsx.cisd.common.logging.LogCategory;
-import ch.systemsx.cisd.common.logging.LogFactory;
-import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
 
 /**
  * Simple data type with information about recovery state.
@@ -44,7 +38,7 @@ public class DataSetStorageRecoveryInfo implements Serializable
     
     private final Date lastTry;
     
-    private final int tryCount;
+    private int tryCount;
 
     public DataSetStorageRecoveryInfo(File recoveryStateFile, Date lastTry, int tryCount)
     {
@@ -53,7 +47,12 @@ public class DataSetStorageRecoveryInfo implements Serializable
         this.lastTry = lastTry;
         this.tryCount = tryCount;
     }
-
+    
+    public void increaseTryCount()
+    {
+        tryCount++;
+    }
+    
     public File getRecoveryStateFile()
     {
         return recoveryStateFile;
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonDropboxRecoveryTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonDropboxRecoveryTest.java
index 17854091d00806e417ac11d0b9c244712582dfc4..349c2a40d3edebb0f697062f1bebeb1316d2dddf 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonDropboxRecoveryTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonDropboxRecoveryTest.java
@@ -160,7 +160,7 @@ public class JythonDropboxRecoveryTest extends AbstractJythonDataSetHandlerTest
 
         if (testCase.canRecoverFromError)
         {
-            assertRecoveryMarkerFile();
+            assertRecoveryFile(0);
             assertOriginalMarkerFileExists();
 
             handler.handle(markerFile);
@@ -192,7 +192,7 @@ public class JythonDropboxRecoveryTest extends AbstractJythonDataSetHandlerTest
                     break;
                 case CHECK_FAILED:
                     assertDirNotEmpty(precommitDirectory, "Precommit directory should not be empty");
-                    assertRecoveryMarkerFile();
+                    assertRecoveryFile(1);
                     assertOriginalMarkerFileExists();
                     // marker file is still there
                     // recovery state file is still there
@@ -235,15 +235,22 @@ public class JythonDropboxRecoveryTest extends AbstractJythonDataSetHandlerTest
                 markerFile.exists());
     }
 
-    private File assertRecoveryMarkerFile()
+    /**
+     * @param tryCount - the excepted stored number of tries in a recovery file
+     */
+    private File assertRecoveryFile(int tryCount)
     {
         File file = getCreatedRecoveryMarkerFile();
         assertTrue("The recovery marker file does not exist! " + file, file.exists());
-        File recoveryFile =
+        DataSetStorageRecoveryInfo recoveryInfo =
                 handler.getGlobalState().getStorageRecoveryManager()
-                        .getRecoveryFileFromMarker(file).getRecoveryStateFile();
+                        .getRecoveryFileFromMarker(file);
+        File recoveryFile = recoveryInfo.getRecoveryStateFile();
         assertTrue("The recovery serialized file does not exist! " + recoveryFile,
                 recoveryFile.exists());
+        
+        assertEquals("The try count in a recovery file is incorrect", tryCount, recoveryInfo.getTryCount());
+        
         return file;
     }