diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/TopLevelDataSetRegistratorGlobalState.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/TopLevelDataSetRegistratorGlobalState.java
index b2f548b1a8eec7133d6e0006f2496109b85a50d1..554d67ac1d02103caf33df6960bf600c774797b4 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/TopLevelDataSetRegistratorGlobalState.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/TopLevelDataSetRegistratorGlobalState.java
@@ -61,6 +61,8 @@ public class TopLevelDataSetRegistratorGlobalState
 
     private final File preCommitDir;
 
+    private final File recoveryStateDir;
+    
     private final IEncapsulatedOpenBISService openBisService;
 
     private final IMailClient mailClient;
@@ -142,17 +144,17 @@ public class TopLevelDataSetRegistratorGlobalState
         this.postRegistrationScriptOrNull = postRegistrationScriptOrNull;
         this.validationScriptsOrNull = validationScriptsOrNull;
 
-        File dropboxRecoveryStateDir =
+        this.recoveryStateDir =
                 new File(dssRecoveryStateDir, threadParameters.getThreadName());
         File recoveryMarkerFilesDirectory =
                 new File(getRecoveryMarkerDir(storeRootDir, shareId,
                         threadParameters.getThreadProperties()), threadParameters.getThreadName());
 
-        dropboxRecoveryStateDir.mkdirs();
+        this.recoveryStateDir.mkdirs();
         recoveryMarkerFilesDirectory.mkdirs();
         
         this.storageRecoveryManager = storageRecoveryManager;
-        this.storageRecoveryManager.setDropboxRecoveryStateDir(dropboxRecoveryStateDir);
+        this.storageRecoveryManager.setDropboxRecoveryStateDir(this.recoveryStateDir);
         this.storageRecoveryManager.setRecoveryMarkerFilesDir(recoveryMarkerFilesDirectory);
         this.storageRecoveryManager.setMaximumRertyCount(getMaximumRecoveryCount(threadParameters.getThreadProperties()));
         this.storageRecoveryManager.setRetryPeriodInSeconds(getMinimumRecoveryPeriod(threadParameters.getThreadProperties()));
@@ -216,6 +218,11 @@ public class TopLevelDataSetRegistratorGlobalState
         return preCommitDir;
     }
 
+    public File getRecoveryStateDir()
+    {
+        return recoveryStateDir;
+    }
+
     public IEncapsulatedOpenBISService getOpenBisService()
     {
         return openBisService;
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java
index 007c498b724b7f0f561d1e9d8c0c0efd10d81f11..d259aa4d2790edf3932a4125f86233eda2ca781d 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java
@@ -35,6 +35,7 @@ import ch.systemsx.cisd.etlserver.ITopLevelDataSetRegistratorDelegate;
 import ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState;
 import ch.systemsx.cisd.etlserver.registrator.api.v1.SecondaryTransactionFailure;
 import ch.systemsx.cisd.etlserver.registrator.api.v1.impl.DataSetRegistrationTransaction;
+import ch.systemsx.cisd.etlserver.registrator.monitor.DssRegistrationHealthMonitor;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
 
 /**
@@ -156,6 +157,8 @@ public class JythonTopLevelDataSetHandler<T extends DataSetInformation> extends
                     path);
         }
 
+        DssRegistrationHealthMonitor.getInstance(globalState.getOpenBisService(), globalState.getRecoveryStateDir());
+        
     }
 
     @Override