diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/ISampleDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/ISampleDAO.java
index bb97241432daddd39e4c3448bad0794a8bba6510..6059bd40128157739f42b7db73869479eba74e5c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/ISampleDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/ISampleDAO.java
@@ -119,6 +119,9 @@ public interface ISampleDAO extends IGenericDAO<SamplePE>
     /** Returns ids of samples connected with experiments specified by given ids. */
     List<TechId> listSampleIdsByExperimentIds(Collection<TechId> experimentIds);
 
+    /** Returns ids of sample of specified types specified by given ids. */
+    List<TechId> listSampleIdsBySampleTypeIds(Collection<TechId> sampleTypeIds);
+    
     /**
      * Lists samples (with minimal additional information) belonging to the given <code>space</code> and having a property with the specified value.
      */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DAOFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DAOFactory.java
index 2988dc0cc231f15360bf0a7419998e6b1f43fc52..c474d33dc0a47186b647f5e720d52e6d29e1f2fd 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DAOFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DAOFactory.java
@@ -174,7 +174,7 @@ public final class DAOFactory extends AuthorizationDAOFactory implements IDAOFac
         for (final EntityKind entityKind : entityKinds)
         {
             final EntityTypeDAO dao =
-                    new EntityTypeDAO(entityKind, sessionFactory, historyCreator);
+                    new EntityTypeDAO(entityKind, sessionFactory, historyCreator, this);
             entityTypeDAOs.put(entityKind, dao);
             entityPropertyTypeDAOs.put(entityKind, new EntityPropertyTypeDAO(entityKind,
                     getPersistencyResources()));
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityTypeDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityTypeDAO.java
index d3195a7309b506ccaf153e8d9333f7718aa22012..434c9956f45e0c7a5441dd0394f4410ab6e5bf14 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityTypeDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/EntityTypeDAO.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.openbis.generic.server.dataaccess.db;
 
+import java.util.Arrays;
 import java.util.List;
 
 import org.apache.log4j.Logger;
@@ -28,10 +29,15 @@ import org.springframework.orm.hibernate4.HibernateTemplate;
 
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
+import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityTypeDAO;
+import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISampleDAO;
 import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.deletion.EntityHistoryCreator;
 import ch.systemsx.cisd.openbis.generic.shared.basic.CodeConverter;
+import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.dto.EntityTypePE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.SampleTypePE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityKind;
 
 /**
@@ -45,11 +51,14 @@ final class EntityTypeDAO extends AbstractTypeDAO<EntityTypePE> implements IEnti
             LogFactory.getLogger(LogCategory.OPERATION, EntityTypeDAO.class);
 
     private final EntityKind entityKind;
-
-    EntityTypeDAO(final EntityKind entityKind, final SessionFactory sessionFactory, EntityHistoryCreator historyCreator)
+    private final IDAOFactory daoFactory;
+    
+    EntityTypeDAO(final EntityKind entityKind, final SessionFactory sessionFactory, 
+            EntityHistoryCreator historyCreator, IDAOFactory daoFactory)
     {
         super(sessionFactory, entityKind.getTypeClass(), historyCreator);
         this.entityKind = entityKind;
+        this.daoFactory = daoFactory;
     }
 
     //
@@ -96,6 +105,15 @@ final class EntityTypeDAO extends AbstractTypeDAO<EntityTypePE> implements IEnti
         {
             operationLog.info(String.format("ADD: entity type '%s'.", entityType));
         }
+        
+        if (entityType instanceof SampleTypePE)
+        {
+            ISampleDAO sampleDAO = daoFactory.getSampleDAO();
+            List<TechId> sampleIds = sampleDAO.listSampleIdsBySampleTypeIds(Arrays.asList(new TechId(entityType.getId())));
+            scheduleDynamicPropertiesEvaluationForIds(
+                    daoFactory.getPersistencyResources().getDynamicPropertyEvaluationScheduler(),
+                    SamplePE.class, TechId.asLongs(sampleIds));
+        }
     }
 
     @Override
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java
index 172437d7cc18c3e872c1ae06b4ff921fd9d9dbf2..79ef99fd7218529ab80e16bdd4a5adfd761f27f5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SampleDAO.java
@@ -740,6 +740,30 @@ public class SampleDAO extends AbstractGenericEntityWithPropertiesDAO<SamplePE>
         return transformNumbers2TechIdList(results);
     }
 
+    @Override
+    public List<TechId> listSampleIdsBySampleTypeIds(Collection<TechId> sampleTypeIds)
+    {
+        final List<Long> longIds = TechId.asLongs(sampleTypeIds);
+        final List<Long> results =
+                DAOUtils.listByCollection(getHibernateTemplate(), new IDetachedCriteriaFactory()
+                    {
+                        @Override
+                        public DetachedCriteria createCriteria()
+                        {
+                            final DetachedCriteria criteria =
+                                    DetachedCriteria.forClass(SamplePE.class);
+                            criteria.setProjection(Projections.id());
+                            return criteria;
+                        }
+                    }, "sampleType.id", longIds);
+        if (operationLog.isDebugEnabled())
+        {
+            operationLog.info(String.format("found %s samples for given sample types",
+                    results.size()));
+        }
+        return transformNumbers2TechIdList(results);
+    }
+    
     @Override
     public List<TechId> listSampleIdsByExperimentIds(final Collection<TechId> experiments)
     {