diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/DynamicPropertyEvaluator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/DynamicPropertyEvaluator.java
index 0f02581d87b754242d37e51ddf9af07918d5ef9c..c3ff30ec57edb030f3c7516ea9e6ffa80d758c74 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/DynamicPropertyEvaluator.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/dynamic_property/DynamicPropertyEvaluator.java
@@ -113,12 +113,16 @@ public class DynamicPropertyEvaluator implements IDynamicPropertyEvaluator
                                 .setParameter("sample", entity);
                 allPropertyTypes = propertyTypeQuery.list();
 
-                propertyQuery =
-                        session.createQuery(
-                                "SELECT property FROM SamplePropertyPE property WHERE " +
-                                        "property.entity = :sample AND property.entityTypePropertyType IN (:types)")
-                                .setParameter("sample", entity).setParameterList("types", allPropertyTypes);
-                existingProperties = propertyQuery.list();
+                if (allPropertyTypes.size() > 0) {
+                    propertyQuery =
+                            session.createQuery(
+                                    "SELECT property FROM SamplePropertyPE property WHERE " +
+                                            "property.entity = :sample AND property.entityTypePropertyType IN (:types)")
+                                    .setParameter("sample", entity).setParameterList("types", allPropertyTypes);
+                    existingProperties = propertyQuery.list();
+                } else {
+                    existingProperties = new ArrayList<EntityPropertyPE>();
+                }
                 break;
             case DATA_SET:
                 propertyTypeQuery =
@@ -127,12 +131,16 @@ public class DynamicPropertyEvaluator implements IDynamicPropertyEvaluator
                                 .setParameter("data", entity);
                 allPropertyTypes = propertyTypeQuery.list();
 
-                propertyQuery =
-                        session.createQuery(
-                                "SELECT property FROM DataSetPropertyPE property WHERE " +
-                                        "property.entity = :data AND property.entityTypePropertyType IN (:types)")
-                                .setParameter("data", entity).setParameterList("types", allPropertyTypes);
-                existingProperties = propertyQuery.list();
+                if (allPropertyTypes.size() > 0) {
+                    propertyQuery =
+                            session.createQuery(
+                                    "SELECT property FROM DataSetPropertyPE property WHERE " +
+                                            "property.entity = :data AND property.entityTypePropertyType IN (:types)")
+                                    .setParameter("data", entity).setParameterList("types", allPropertyTypes);
+                    existingProperties = propertyQuery.list();
+                } else {
+                    existingProperties = new ArrayList<EntityPropertyPE>();
+                }
                 break;
             case EXPERIMENT:
                 propertyTypeQuery =
@@ -141,12 +149,17 @@ public class DynamicPropertyEvaluator implements IDynamicPropertyEvaluator
                                 .setParameter("experiment", entity);
                 allPropertyTypes = propertyTypeQuery.list();
 
-                propertyQuery =
-                        session.createQuery(
-                                "SELECT property FROM ExperimentPropertyPE property WHERE " +
-                                        "property.entity = :experiment AND property.entityTypePropertyType IN (:types)")
-                                .setParameter("experiment", entity).setParameterList("types", allPropertyTypes);
-                existingProperties = propertyQuery.list();
+                if (allPropertyTypes.size() > 0) {
+                    propertyQuery =
+                            session.createQuery(
+                                    "SELECT property FROM ExperimentPropertyPE property WHERE " +
+                                            "property.entity = :experiment AND property.entityTypePropertyType IN (:types)")
+                                    .setParameter("experiment", entity).setParameterList("types", allPropertyTypes);
+                    existingProperties = propertyQuery.list();
+                } else {
+                    existingProperties = new ArrayList<EntityPropertyPE>();
+                }
+                    
                 break;
             case MATERIAL:
                 propertyTypeQuery =
@@ -155,12 +168,16 @@ public class DynamicPropertyEvaluator implements IDynamicPropertyEvaluator
                                 .setParameter("material", entity);
                 allPropertyTypes = propertyTypeQuery.list();
 
-                propertyQuery =
-                        session.createQuery(
-                                "SELECT property FROM MaterialPropertyPE property WHERE " +
-                                        "property.entity = :material AND property.entityTypePropertyType IN (:types)")
-                                .setParameter("material", entity).setParameterList("types", allPropertyTypes);
-                existingProperties = propertyQuery.list();
+                if (allPropertyTypes.size() > 0) {
+                    propertyQuery =
+                            session.createQuery(
+                                    "SELECT property FROM MaterialPropertyPE property WHERE " +
+                                            "property.entity = :material AND property.entityTypePropertyType IN (:types)")
+                                    .setParameter("material", entity).setParameterList("types", allPropertyTypes);
+                    existingProperties = propertyQuery.list();
+                } else {
+                    existingProperties = new ArrayList<EntityPropertyPE>();
+                }
                 break;
             default:
                 throw new IllegalArgumentException(entity.getEntityKind().toString());