diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java
index e46070aa7759115c1a687b70d677ac8013dc955c..dbe9cd514c82b4de161108c099a7f44b1d7a7db2 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java
@@ -248,7 +248,7 @@ public class JythonTopLevelDataSetHandlerV2<T extends DataSetInformation> extend
             {
                 throw new IllegalStateException("Undefined process() function");
             }
-            IDataSetRegistrationTransactionV2 v2transaction = new DataSetRegistrationTransactionV2Delegate(transaction);
+            IDataSetRegistrationTransactionV2 v2transaction = wrapTransaction(transaction);
             invokeFunction(function, v2transaction);
         } catch (Exception e)
         {
@@ -256,6 +256,16 @@ public class JythonTopLevelDataSetHandlerV2<T extends DataSetInformation> extend
         }
     }
 
+    /**
+     * Wraps the transaction - to hide methods which we don't want to expose in the api.
+     */
+    protected IDataSetRegistrationTransactionV2 wrapTransaction(
+            IDataSetRegistrationTransaction transaction)
+    {
+        IDataSetRegistrationTransactionV2 v2transaction = new DataSetRegistrationTransactionV2Delegate(transaction);
+        return v2transaction;
+    }
+
     @Override
     protected boolean shouldUseOldJythonHookFunctions()
     {