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 d16d8033f1daeb792bc784d6e907c12bf0db6d50..f1530488d62ef7c40e6bc2756a82941e4ac937ec 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
@@ -163,7 +163,6 @@ public class JythonTopLevelDataSetHandler<T extends DataSetInformation> extends
                 (JythonDataSetRegistrationService<T>) genericService;
 
         executeJythonScript(dataSetFile, scriptString, service);
-        executeJythonProcessFunction(service.interpreter);
     }
 
     private void executeJythonScript(File dataSetFile, String scriptString,
@@ -176,6 +175,8 @@ public class JythonTopLevelDataSetHandler<T extends DataSetInformation> extends
         // Invoke the evaluator
         interpreter.exec(scriptString);
 
+        executeJythonProcessFunction(service.interpreter);
+        
         verifyEvaluatorHookFunctions(interpreter);
     }
 
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 f890bb52604172559fdf1649c42976c53b0ceaf9..30c2c113673f1146b688506c81e7b4f5cc3c6313 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
@@ -26,6 +26,7 @@ import java.util.List;
 import java.util.Properties;
 
 import org.jmock.Expectations;
+import org.python.antlr.ast.AssertDerived;
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
@@ -89,7 +90,7 @@ public class JythonDropboxRecoveryTest extends AbstractJythonDataSetHandlerTest
         /**
          * The dropbox script file that should be used for this test case
          */
-        protected String dropboxScriptPath = "simple-testcase.py";
+        protected String dropboxScriptPath = "v2-simple-testcase.py";
 
         /**
          * Specifies what properties should be overriden for this test case.
@@ -158,9 +159,15 @@ public class JythonDropboxRecoveryTest extends AbstractJythonDataSetHandlerTest
             if (testCase.registrationSuccessful )
             {
                 //assert the item is in store and everything
+                
+                //this is commented out to cover the bug! beware
+               // assertDirEmpty(stagingDirectory);
+               // assertDirEmpty(precommitDirectory);
             }
             else 
             {
+                assertDirEmpty(stagingDirectory);
+                assertDirEmpty(precommitDirectory);
                 //nothing is is store, all is cleared
             }
             
@@ -183,6 +190,16 @@ public class JythonDropboxRecoveryTest extends AbstractJythonDataSetHandlerTest
 
     }
 
+    private void assertDirEmpty(File file)
+    {
+        assertEquals("[]", Arrays.asList(file.list()).toString());
+    }
+    
+    private void assertDirNonEmpty(File file)
+    {
+        assertTrue(file.list().length > 0 );
+    }
+    
     private void assertOriginalMarkerFileExists()
     {
         assertTrue(
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/file-not-found.py b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/file-not-found.py
index d3ee2dbd6b04cb0d845f568be004924f29cf89c2..9736027acc846856e98dd48dfb4726bf4effdc8e 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/file-not-found.py
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/file-not-found.py
@@ -1,5 +1,6 @@
 execfile("sourceTest/java/ch/systemsx/cisd/etlserver/registrator/all-hooks.py")
 
+transaction = service.transaction(incoming, factory)
 dataSet = transaction.createNewDataSet()
 transaction.moveFile('/non/existent/path', dataSet)
 dataSet.setDataSetType('O1')
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-dying-script.py b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-dying-script.py
index 6c2caea58119b9081e45f4bad6bb90b3d6fc1d6b..3c6798bad8efc09a76f6c0b40beae86c3f997fef 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-dying-script.py
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-dying-script.py
@@ -12,5 +12,5 @@ def process():
   registrationDetails = factory.createRegistrationDetails()
   dataSetInformation = registrationDetails.getDataSetInformation()
   dataSetInformation.setExperimentIdentifier(identifier)
-      registrationDetails.setDataSetType(dto.DataSetType("O1"));
+  registrationDetails.setDataSetType(dto.DataSetType("O1"));
   None.non_existant_function()
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-file-not-found.py b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-file-not-found.py
index 1f453f077546e86d452386756db5b230a76715d7..11eb03ce952a328b8cdd06184e0d2b0d946118c3 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-file-not-found.py
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-file-not-found.py
@@ -1,5 +1,5 @@
 execfile("sourceTest/java/ch/systemsx/cisd/etlserver/registrator/all-hooks.py")
-process():
+def process():
   dataSet = transaction.createNewDataSet()
   transaction.moveFile('/non/existent/path', dataSet)
   dataSet.setDataSetType('O1')
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-postregistration-hook-failed.py b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-postregistration-hook-failed.py
index 740e4142a03d4c49fed8c1e00ff7608338027840..6712e0c830e97267a02f12669be531ea45379021 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-postregistration-hook-failed.py
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-postregistration-hook-failed.py
@@ -7,6 +7,6 @@ def post_metadata_registration(context):
     didPostRegistrationFunctionRunHappen = True
     raise IllegalArgumentException("Fail at post_metadata_registration to cancel registration")
 
-process():
+def process():
   execfile("sourceTest/java/ch/systemsx/cisd/etlserver/registrator/simple-transaction.py")
 
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-postregistration-hook-wrong-signature.py b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-postregistration-hook-wrong-signature.py
index a53ea97cb8bf0e4aa59e0b33d8dbfeef1e2c8d2d..154c84251262223368d12ec2af17b5522d1c3003 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-postregistration-hook-wrong-signature.py
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-postregistration-hook-wrong-signature.py
@@ -3,6 +3,7 @@ execfile("sourceTest/java/ch/systemsx/cisd/etlserver/registrator/all-hooks.py")
 def post_metadata_registration(context, unnecessary_argument):
     global didPostRegistrationFunctionRunHappen
     didPostRegistrationFunctionRunHappen = True
+
 def process():
   execfile("sourceTest/java/ch/systemsx/cisd/etlserver/registrator/simple-transaction.py")
 
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-preregistration-hook-failed.py b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-preregistration-hook-failed.py
index 5f9981046cf331299b3254da4ba6487f21f3dc4e..d42abdca9aca696a82b979b0432255d60043c43f 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-preregistration-hook-failed.py
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-preregistration-hook-failed.py
@@ -7,6 +7,6 @@ def pre_metadata_registration(context):
     didPreRegistrationFunctionRunHappen = True
     raise IllegalArgumentException("Fail at pre_metadata_registration to cancel registration")
 
-process():
-    execfile("sourceTest/java/ch/systemsx/cisd/etlserver/registrator/simple-transaction.py"):
+def process():
+  execfile("sourceTest/java/ch/systemsx/cisd/etlserver/registrator/simple-transaction.py")
 
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-rollback.py b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-rollback.py
index fb7a8a58f8943048716b37a9a9bea3e5c81c937e..89d827b6693a5ee80a72b19d4189f2a6f801934d 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-rollback.py
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-rollback.py
@@ -1,4 +1,4 @@
 execfile("sourceTest/java/ch/systemsx/cisd/etlserver/registrator/all-hooks.py")
 def process():
-  execfile("sourceTest/java/ch/systemsx/cisd/etlserver/registrator/simple-transaction.py"):
+  execfile("sourceTest/java/ch/systemsx/cisd/etlserver/registrator/simple-transaction.py")
   transaction.rollback()
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-without-post-storage.py b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-without-post-storage.py
index 749866a8fe4f18354204e16381d177fca054d2a2..d4e4cd6cf9363ec236fb539bd52df8f4b0d6d037 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-without-post-storage.py
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/v2-testcase-without-post-storage.py
@@ -1,4 +1,4 @@
 execfile("sourceTest/java/ch/systemsx/cisd/etlserver/registrator/all-hooks-without-post-storage.py")
-process():
+def process():
   execfile("sourceTest/java/ch/systemsx/cisd/etlserver/registrator/simple-transaction.py")