diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/MaterialTypeTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/MaterialTypeTranslator.java
index 6c22911a1193778d0bfd718c6c517f141630926e..b83c01feef420e9c3ce70e3365eff8b48e1be11e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/MaterialTypeTranslator.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/MaterialTypeTranslator.java
@@ -16,10 +16,14 @@
 
 package ch.systemsx.cisd.openbis.generic.client.web.server.translator;
 
+import java.util.Set;
+
 import org.apache.commons.lang.StringEscapeUtils;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialType;
 import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialTypePE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialTypePropertyTypePE;
+import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils;
 
 /**
  * Translates {@link MaterialTypePE} to {@link MaterialType}.
@@ -34,6 +38,11 @@ public class MaterialTypeTranslator
     }
 
     public static MaterialType translate(MaterialTypePE entityTypeOrNull)
+    {
+        return translate(entityTypeOrNull, true);
+    }
+
+    public static MaterialType translate(MaterialTypePE entityTypeOrNull, boolean withProperties)
     {
         if (entityTypeOrNull == null)
         {
@@ -44,11 +53,24 @@ public class MaterialTypeTranslator
         result.setDescription(StringEscapeUtils.escapeHtml(entityTypeOrNull.getDescription()));
         result.setDatabaseInstance(DatabaseInstanceTranslator.translate(entityTypeOrNull
                 .getDatabaseInstance()));
+        if (withProperties == false)
+        {
+            unsetMaterialTypes(entityTypeOrNull.getMaterialTypePropertyTypes());
+        }
         result.setMaterialTypePropertyTypes(MaterialTypePropertyTypeTranslator.translate(
                 entityTypeOrNull.getMaterialTypePropertyTypes(), result));
         return result;
     }
 
+    private static void unsetMaterialTypes(Set<MaterialTypePropertyTypePE> materialTypePropertyTypes)
+    {
+        if ((HibernateUtils.isInitialized(materialTypePropertyTypes)))
+            for (MaterialTypePropertyTypePE mtpt : materialTypePropertyTypes)
+            {
+                mtpt.getPropertyType().setMaterialType(null);
+            }
+    }
+
     public static MaterialTypePE translate(MaterialType type)
     {
         final MaterialTypePE result = new MaterialTypePE();
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/PropertyTypeTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/PropertyTypeTranslator.java
index a67568da21fcf7098d08a3260cb73e139b4df4cd..5f586169e08b39ec9c3d5dfbd9047e73f398c1d3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/PropertyTypeTranslator.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/PropertyTypeTranslator.java
@@ -59,15 +59,8 @@ public final class PropertyTypeTranslator
         result.setLabel(StringEscapeUtils.escapeHtml(propertyType.getLabel()));
         result.setDataType(DataTypeTranslator.translate(propertyType.getType()));
         result.setVocabulary(VocabularyTranslator.translate(propertyType.getVocabulary()));
-        if (materialType == null)
-        {
-            result
-                    .setMaterialType(MaterialTypeTranslator.translate(propertyType
-                            .getMaterialType()));
-        } else
-        {
-            result.setMaterialType(materialType);
-        }
+        result.setMaterialType(MaterialTypeTranslator.translate(propertyType.getMaterialType(),
+                false));
         result.setDescription(StringEscapeUtils.escapeHtml(propertyType.getDescription()));
         result.setSampleTypePropertyTypes(SampleTypePropertyTypeTranslator.translate(propertyType
                 .getSampleTypePropertyTypes(), result));