diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/AbstractTransactionState.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/AbstractTransactionState.java
index e822b0766d3aa644b37300eb24298d9e2e3bcdee..eaf5d40bd01c8235742f08867cc153b89a457bb2 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/AbstractTransactionState.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/AbstractTransactionState.java
@@ -26,7 +26,6 @@ import java.util.Map;
 import java.util.Queue;
 
 import net.lemnik.eodsql.DynamicTransactionQuery;
-
 import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
 import ch.systemsx.cisd.base.exceptions.IOExceptionUnchecked;
 import ch.systemsx.cisd.base.exceptions.InterruptedExceptionUnchecked;
@@ -93,7 +92,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifierFactory;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory;
-import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier;
+import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifierFactory;
 
 /**
  * Abstract superclass for the states a DataSetRegistrationTransaction can be in.
@@ -974,7 +973,7 @@ public abstract class AbstractTransactionState<T extends DataSetInformation>
         {
             SpaceRoleAssignment assignment = new SpaceRoleAssignment();
             assignment.setRoleCode(role);
-            assignment.setSpaceIdentifier(new SpaceIdentifier(space.getSpaceCode()));
+            assignment.setSpaceIdentifier(new SpaceIdentifierFactory(space.getSpaceCode()).createIdentifier());
             ArrayList<Grantee> grantees = new ArrayList<Grantee>();
             if (null != userIds)
             {
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/SpaceImmutable.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/SpaceImmutable.java
index 4ac5d2b78dd592cc984fb0c0823e2697babe336d..afcaecb59db2d6f6680c1e2f497d9f1368916fec 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/SpaceImmutable.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/impl/SpaceImmutable.java
@@ -18,6 +18,7 @@ package ch.systemsx.cisd.etlserver.registrator.api.v2.impl;
 
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2.ISpaceImmutable;
+import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier;
 
 /**
  * @author Kaloyan Enimanev
@@ -75,4 +76,9 @@ public class SpaceImmutable implements ISpaceImmutable
         return space;
     }
 
+    @Override
+    public String getIdentifier()
+    {
+        return space.getIdentifier();
+    }
 }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/internal/v2/ISpaceImmutable.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/internal/v2/ISpaceImmutable.java
index 32eb6f79d004eb08e08965da389609e0d02d01df..fcd28212415e0105f8107966266160bbafe6f19c 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/internal/v2/ISpaceImmutable.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/internal/v2/ISpaceImmutable.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.v2;
 
+
 /**
  * An interface for spaces from the database that should not be altered.
  * 
@@ -39,5 +40,9 @@ public interface ISpaceImmutable
      */
     boolean isExistingSpace();
 
+    /**
+     * Return the identifier for this space.
+     */
+    String getIdentifier();
 
 }