diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MaterialChooserField.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MaterialChooserField.java
index b1350b73e8ba3cc8478d69202a1db347e69c8e98..909160a0820754932c6b04624045831e45bb46cb 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MaterialChooserField.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/MaterialChooserField.java
@@ -46,11 +46,12 @@ public final class MaterialChooserField extends TextField<String> implements
         ChosenEntitySetter<Material>
 {
     public static Field<?> create(final String labelField, final boolean mandatory,
-            final MaterialType materialTypeOrNull,
+            final MaterialType materialTypeOrNull, String initialValueOrNull,
             final IViewContext<ICommonClientServiceAsync> viewContext)
     {
         final MaterialChooserField chosenMaterialField =
-                new MaterialChooserField(mandatory, materialTypeOrNull, viewContext);
+                new MaterialChooserField(mandatory, materialTypeOrNull, initialValueOrNull,
+                        viewContext);
 
         Button chooseButton = new Button(viewContext.getMessage(Dict.BUTTON_BROWSE));
         chooseButton.addSelectionListener(new SelectionListener<ComponentEvent>()
@@ -70,8 +71,7 @@ public final class MaterialChooserField extends TextField<String> implements
     {
         DisposableEntityChooser<Material> materialBrowser =
                 MaterialBrowserGrid.create(viewContext, materialTypeOrNull);
-        new EntityChooserDialog<Material>(materialBrowser, chosenMaterialField, viewContext)
-                .show();
+        new EntityChooserDialog<Material>(materialBrowser, chosenMaterialField, viewContext).show();
     }
 
     // ------------------
@@ -100,7 +100,7 @@ public final class MaterialChooserField extends TextField<String> implements
     }
 
     private MaterialChooserField(boolean mandatory, MaterialType materialTypeOrNull,
-            IViewContext<ICommonClientServiceAsync> viewContext)
+            String initialValueOrNull, IViewContext<ICommonClientServiceAsync> viewContext)
     {
         this.mandatory = mandatory;
 
@@ -109,7 +109,13 @@ public final class MaterialChooserField extends TextField<String> implements
 
         setRegex(CODE_AND_TYPE_PATTERN);
         getMessages().setRegexText(viewContext.getMessage(Dict.INCORRECT_MATERIAL_SYNTAX));
-        setEmptyText(createEmptyText(materialTypeOrNull, viewContext));
+        if (initialValueOrNull != null)
+        {
+            setValue(initialValueOrNull);
+        } else
+        {
+            setEmptyText(createEmptyText(materialTypeOrNull, viewContext));
+        }
         FieldUtil.setMandatoryFlag(this, mandatory);
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/PropertyFieldFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/PropertyFieldFactory.java
index bef935d3567cbf8980d822f339eac193349f55a8..76acff7e1e9185e6e59dcdcd9163d4d8606b2a14 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/PropertyFieldFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/PropertyFieldFactory.java
@@ -36,7 +36,8 @@ public class PropertyFieldFactory
             String fieldId, String originalRawValue,
             IViewContext<ICommonClientServiceAsync> viewContext)
     {
-        final Field<?> field = createField(pt, isMandatory, label, fieldId, viewContext);
+        final Field<?> field =
+                doCreateField(pt, isMandatory, label, fieldId, originalRawValue, viewContext);
         field.setId(fieldId);
         if (originalRawValue != null)
         {
@@ -45,8 +46,9 @@ public class PropertyFieldFactory
         return field;
     }
 
-    private static Field<?> createField(final PropertyType pt, boolean isMandatory, String label,
-            String fieldId, IViewContext<ICommonClientServiceAsync> viewContext)
+    private static Field<?> doCreateField(final PropertyType pt, boolean isMandatory, String label,
+            String fieldId, String originalRawValue,
+            IViewContext<ICommonClientServiceAsync> viewContext)
     {
         final DataTypeCode dataType = pt.getDataType().getCode();
         switch (dataType)
@@ -66,7 +68,7 @@ public class PropertyFieldFactory
                 return new RealField(label, isMandatory);
             case MATERIAL:
                 return MaterialChooserField.create(label, isMandatory, pt.getMaterialType(),
-                        viewContext);
+                        originalRawValue, viewContext);
         }
         throw new IllegalStateException("unknown enum " + dataType);
     }