diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityPropertyTypeDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityPropertyTypeDAO.java
index 0e57286be1d7f6ffebe968d65ec4a85bf3e35ae4..7f4ef6074dc37178b7f6ef26ec12ca4cf3a3f852 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityPropertyTypeDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityPropertyTypeDAO.java
@@ -279,12 +279,12 @@ final class EntityPropertyTypeDAO extends AbstractDAO implements IEntityProperty
                         default:
                             throw new IllegalArgumentException(entityKind.toString());
                     }
-                    SQLQuery clearQuery =
+                    SQLQuery updateQuery =
                             session.createSQLQuery(
                                     "update " + entityTableName + " set modification_timestamp = :timestamp where id in :entityIds ");
-                    clearQuery.setTimestamp("timestamp", getTransactionTimeStamp());
-                    clearQuery.setParameterList("entityIds", entityIds);
-                    clearQuery.executeUpdate();
+                    updateQuery.setTimestamp("timestamp", getTransactionTimeStamp());
+                    updateQuery.setParameterList("entityIds", entityIds);
+                    updateQuery.executeUpdate();
                     return null;
                 }
             });
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/api/v1/GeneralInformationChangingServiceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/api/v1/GeneralInformationChangingServiceTest.java
index 050c9d993c89105e71d8acf4583a17c3c1285797..b6c09d897f45ba1bd6fdb0bd85d084f837c504f2 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/api/v1/GeneralInformationChangingServiceTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/api/v1/GeneralInformationChangingServiceTest.java
@@ -28,12 +28,14 @@ import java.util.List;
 
 import junit.framework.Assert;
 
+import org.hibernate.Session;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 import ch.systemsx.cisd.common.exceptions.AuthorizationFailureException;
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
+import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.OpenBISHibernateTransactionManager;
 import ch.systemsx.cisd.openbis.generic.shared.ICommonServer;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationChangingService;
 import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService;
@@ -123,6 +125,60 @@ public class GeneralInformationChangingServiceTest extends SystemTestCase
                 history.toString());
     }
 
+    @Test
+    public void testAssignMandatoryProperty()
+    {
+        TechId id = new TechId(1043L);
+        ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample sampleBefore = localCommonServer.getSampleInfo(sessionToken, id).getParent();
+        assertProperties("[ANY_MATERIAL: 2 (GENE), BACTERIUM: BACTERIUM-Y (BACTERIUM), "
+                + "COMMENT: extremely simple stuff, ORGANISM: GORILLA, SIZE: 321]",
+                sampleBefore);
+        NewETPTAssignment newETPTAssignment = new NewETPTAssignment();
+        newETPTAssignment.setEntityKind(EntityKind.SAMPLE);
+        newETPTAssignment.setDynamic(false);
+        newETPTAssignment.setMandatory(true);
+        newETPTAssignment.setDefaultValue("BMP_15");
+        newETPTAssignment.setPropertyTypeCode("GENE_SYMBOL");
+        newETPTAssignment.setOrdinal(1L);
+        newETPTAssignment.setEntityTypeCode("CELL_PLATE");
+        newETPTAssignment.setShownInEditView(true);
+        newETPTAssignment.setShowRawValue(true);
+        localCommonServer.assignPropertyType(sessionToken,
+                newETPTAssignment);
+        //we clear the hibernateSession because assignPropertyType
+        //method executes sqls outside hibernate session
+        Session hibernateSession = getHibernateSession();
+        hibernateSession.clear();
+
+        ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample sampleAfter = localCommonServer.getSampleInfo(sessionToken, id).getParent();
+
+        assertProperties("[ANY_MATERIAL: 2 (GENE), BACTERIUM: BACTERIUM-Y (BACTERIUM), "
+                + "COMMENT: extremely simple stuff, GENE_SYMBOL: BMP_15, "
+                + "ORGANISM: GORILLA, SIZE: 321]", sampleAfter);
+        assertFalse(sampleBefore.getModificationDate().equals(sampleAfter.getModificationDate()));
+    }
+
+    @Test
+    public void testUnassignProperty()
+    {
+        TechId id = new TechId(1043L);
+        ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample sampleBefore = localCommonServer.getSampleInfo(sessionToken, id).getParent();
+        assertProperties("[ANY_MATERIAL: 2 (GENE), BACTERIUM: BACTERIUM-Y (BACTERIUM), "
+                + "COMMENT: extremely simple stuff, ORGANISM: GORILLA, SIZE: 321]",
+                sampleBefore);
+        localCommonServer.unassignPropertyType(sessionToken, EntityKind.SAMPLE, "COMMENT", "CELL_PLATE");
+        getHibernateSession().clear();
+        ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample sampleAfter =
+                localCommonServer.getSampleInfo(sessionToken, id).getParent();
+        assertFalse(sampleBefore.getModificationDate().equals(sampleAfter.getModificationDate()));
+    }
+
+    private Session getHibernateSession()
+    {
+        OpenBISHibernateTransactionManager bean = (OpenBISHibernateTransactionManager) applicationContext.getBean("transaction-manager");
+        return bean.getSessionFactory().getCurrentSession();
+    }
+
     @Test
     public void testCreateMetaproject()
     {