diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java
index 06d5eb2e47109671caca1323c56630307a2c1144..a089aea7d415f09e3cc30d771f9bb1c1e6008b77 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/MaterialBO.java
@@ -90,6 +90,7 @@ public final class MaterialBO extends AbstractMaterialBusinessObject implements
     {
         material = getMaterialById(materialId);
         dataChanged = false;
+        HibernateUtils.initialize(material.getMaterialType().getMaterialTypePropertyTypes());
     }
 
     @Override
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java
index 3aa5c1b0791c931c038dde43799d44d92ff7a358..9c35f2b1be15d0eb76384f605c7d7bbc5921dc27 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/CommonServerTest.java
@@ -33,9 +33,11 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Attachment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AuthorizationGroup;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ContainerDataSet;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityTypePropertyType;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAuthorizationGroup;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
 
@@ -158,6 +160,23 @@ public class CommonServerTest extends SystemTestCase
         assertEquals("/CISD/CP-TEST-1", dataSet.getSampleIdentifier());
     }
 
+    @Test
+    public void testGetMaterialInfo()
+    {
+        Material materialInfo = commonServer.getMaterialInfo(systemSessionToken, new TechId(1));
+
+        assertEquals("AD3", materialInfo.getCode());
+        assertEquals(EntityKind.MATERIAL, materialInfo.getEntityKind());
+        EntityType entityType = materialInfo.getEntityType();
+        assertEquals("VIRUS", entityType.getCode());
+        List<? extends EntityTypePropertyType<?>> assignedPropertyTypes = entityType.getAssignedPropertyTypes();
+        assertEquals("VIRUS", assignedPropertyTypes.get(0).getEntityType().getCode());
+        assertEquals("DESCRIPTION", assignedPropertyTypes.get(0).getPropertyType().getCode());
+        assertEquals("VARCHAR", assignedPropertyTypes.get(0).getPropertyType().getDataType().getCode().toString());
+        assertEquals(1, assignedPropertyTypes.size());
+        assertEquals("[DESCRIPTION: Adenovirus 3]", materialInfo.getProperties().toString());
+    }
+
     private void assertAssignedPropertyTypes(String expected, EntityType entityType)
     {
         List<? extends EntityTypePropertyType<?>> propTypes = entityType.getAssignedPropertyTypes();