diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java
index f7c1d54038704f8db90bc96424279b753907647e..4891b0dc8e7f8ac9fe21f08a7dcdbc09525222ea 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java
@@ -152,6 +152,7 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi
         updateModifierAndModificationDate(experimentPE);
 
         final SamplePE samplePE = new SamplePE();
+        samplePE.setPermId(getOrCreatePermID(newSample));
         samplePE.setExperiment(experimentPE);
         samplePE.setCode(sampleIdentifier.getSampleSubCode());
         PersonPE registrator = registratorOrNull != null ? registratorOrNull : findPerson();
@@ -165,7 +166,6 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi
         String containerIdentifier = newSample.getContainerIdentifierForNewSample();
         setContainer(sampleIdentifier, samplePE, containerIdentifier,
                 newSample.getDefaultSpaceIdentifier());
-        samplePE.setPermId(getOrCreatePermID(newSample));
         if (newSample.getParentsOrNull() != null)
         {
             final String[] parents = newSample.getParentsOrNull();