diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java
index 3e8961aa2dae1f6d6060e4e62bf335a4b8dd2bdc..324fca296b6142daf97b92ad950894164499f8df 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/ComponentProvider.java
@@ -139,6 +139,11 @@ public final class ComponentProvider
     }
 
     public final AbstractTabItemFactory getMaterialBrowser()
+    {
+        return getMaterialBrowser(null);
+    }
+
+    public final AbstractTabItemFactory getMaterialBrowser(final String initialMaterialTypeOrNull)
     {
         return new AbstractTabItemFactory()
             {
@@ -146,7 +151,8 @@ public final class ComponentProvider
                 public ITabItem create()
                 {
                     IDisposableComponent browser =
-                            MaterialBrowserGrid.createWithTypeChooser(viewContext);
+                            MaterialBrowserGrid.createWithTypeChooser(viewContext,
+                                    initialMaterialTypeOrNull);
                     return createTab(Dict.MATERIAL_BROWSER, browser);
                 }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBatchRegistrationPanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBatchRegistrationPanel.java
index d8d8108962278ef7a3b2490aeae063054b8464f1..f779ebebcf744a6b9073f0fe466dee936f9fd974 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBatchRegistrationPanel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBatchRegistrationPanel.java
@@ -63,7 +63,7 @@ public final class MaterialBatchRegistrationPanel extends LayoutContainer
         this.viewContext = viewContext;
         setId(ID);
         setScrollMode(Scroll.AUTO);
-        materialTypeSelection = new MaterialTypeSelectionWidget(viewContext, ID_SUFFIX);
+        materialTypeSelection = new MaterialTypeSelectionWidget(viewContext, null, ID_SUFFIX);
         final ToolBar toolBar = createToolBar();
         add(toolBar);
         materialTypeSelection
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java
index 7fd5a85889c5345848958c205c93dac73dd9267a..ba230a521baf28ab3704e695d427965ca842b648 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java
@@ -70,17 +70,22 @@ public class MaterialBrowserGrid extends
     /**
      * Creates a browser with a toolbar which allows to choose the material type. Allows to show or
      * edit material details.
+     * 
+     * @param initialMaterialTypeOrNull
      */
     public static DisposableEntityChooser<Material> createWithTypeChooser(
-            final IViewContext<ICommonClientServiceAsync> viewContext)
+            final IViewContext<ICommonClientServiceAsync> viewContext,
+            String initialMaterialTypeOrNull)
     {
-        return createWithTypeChooser(viewContext, true);
+        return createWithTypeChooser(viewContext, true, initialMaterialTypeOrNull);
     }
 
     private static DisposableEntityChooser<Material> createWithTypeChooser(
-            final IViewContext<ICommonClientServiceAsync> viewContext, boolean detailsAvailable)
+            final IViewContext<ICommonClientServiceAsync> viewContext, boolean detailsAvailable,
+            String initialMaterialTypeOrNull)
     {
-        final MaterialBrowserToolbar toolbar = new MaterialBrowserToolbar(viewContext, null);
+        final MaterialBrowserToolbar toolbar =
+                new MaterialBrowserToolbar(viewContext, initialMaterialTypeOrNull, null);
         final ICriteriaProvider<ListMaterialDisplayCriteria> criteriaProvider = toolbar;
         final MaterialBrowserGrid browserGrid =
                 createBrowserGrid(viewContext, criteriaProvider, detailsAvailable);
@@ -100,7 +105,7 @@ public class MaterialBrowserGrid extends
     {
         if (initValueOrNull == null)
         {
-            return createWithTypeChooser(viewContext, false);
+            return createWithTypeChooser(viewContext, false, null);
         } else
         {
             return createWithoutTypeChooser(viewContext, initValueOrNull);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java
index b62cb8c59a73ce743d6bfbf3e9aaf26705eb257e..40aafb1c2a4908d2befa9cd0d891f58f01f20dd0 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java
@@ -55,11 +55,12 @@ public class MaterialBrowserToolbar extends ToolBar implements
     private final IViewContext<ICommonClientServiceAsync> viewContext;
 
     public MaterialBrowserToolbar(final IViewContext<ICommonClientServiceAsync> viewContext,
-            String displayTypeIdOrNull)
+            String initialMaterialTypeOrNull, String displayTypeIdOrNull)
     {
         this.viewContext = viewContext;
         this.selectMaterialTypeCombo =
-                MaterialTypeSelectionWidget.create(viewContext, displayTypeIdOrNull, ID);
+                MaterialTypeSelectionWidget.create(viewContext, displayTypeIdOrNull,
+                        initialMaterialTypeOrNull, ID);
         display();
     }
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeSelectionWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeSelectionWidget.java
index 5151835f0078e39f7903d78cc9ba9ff22f455e9f..3d32d86073801a954d61ea6797ff4d83e76199a6 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeSelectionWidget.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialTypeSelectionWidget.java
@@ -61,33 +61,39 @@ public final class MaterialTypeSelectionWidget extends
      */
     public static MaterialTypeSelectionWidget createWithAdditionalOption(
             final IViewContext<ICommonClientServiceAsync> viewContext,
-            final String additionalOptionLabel, final String idSuffix)
+            final String additionalOptionLabel, final String initialCodeOrNullParameter,
+            final String idSuffix)
     {
-        return new MaterialTypeSelectionWidget(viewContext, additionalOptionLabel, idSuffix, null);
+        return new MaterialTypeSelectionWidget(viewContext, additionalOptionLabel, idSuffix,
+                initialCodeOrNullParameter, null);
     }
 
     public static MaterialTypeSelectionWidget create(
             final IViewContext<ICommonClientServiceAsync> viewContext,
-            final String displayTypeIdOrNull, final String idSuffix)
+            final String displayTypeIdOrNull, final String initialCodeOrNullParameter,
+            final String idSuffix)
     {
-        return new MaterialTypeSelectionWidget(viewContext, null, idSuffix, displayTypeIdOrNull);
+        return new MaterialTypeSelectionWidget(viewContext, null, idSuffix,
+                initialCodeOrNullParameter, displayTypeIdOrNull);
     }
 
     public MaterialTypeSelectionWidget(final IViewContext<ICommonClientServiceAsync> viewContext,
-            final String idSuffix)
+            final String initialCodeOrNullParameter, final String idSuffix)
     {
-        this(viewContext, null, idSuffix, null);
+        this(viewContext, null, idSuffix, initialCodeOrNullParameter, null);
     }
 
     private MaterialTypeSelectionWidget(IViewContext<ICommonClientServiceAsync> viewContext,
-            String additionalOptionLabelOrNull, String idSuffix, final String displayTypeIdOrNull)
+            String additionalOptionLabelOrNull, String idSuffix,
+            final String initialCodeOrNullParameter, final String displayTypeIdOrNull)
     {
         super(viewContext, SUFFIX + idSuffix, Dict.MATERIAL_TYPE, ModelDataPropertyNames.CODE,
                 "material type", "material types");
         this.viewContext = viewContext;
         this.additionalOptionLabelOrNull = additionalOptionLabelOrNull;
         this.initialCodeOrNull =
-                tryGetInitialValue(displayTypeIdOrNull, viewContext.getDisplaySettingsManager());
+                tryGetInitialValue(displayTypeIdOrNull, initialCodeOrNullParameter, viewContext
+                        .getDisplaySettingsManager());
         setTemplate(GWTUtils.getTooltipTemplate(ModelDataPropertyNames.CODE,
                 ModelDataPropertyNames.TOOLTIP));
         if (displayTypeIdOrNull != null)
@@ -208,9 +214,13 @@ public final class MaterialTypeSelectionWidget extends
     }
 
     private static String tryGetInitialValue(final String displayTypeIdOrNull,
-            DisplaySettingsManager displaySettingsManager)
+            final String initialCodeOrNull, DisplaySettingsManager displaySettingsManager)
     {
-        if (displayTypeIdOrNull != null)
+        boolean initialCodeExplicitlyDefined = initialCodeOrNull != null;
+        if (initialCodeExplicitlyDefined)
+        {
+            return initialCodeOrNull;
+        } else if (displayTypeIdOrNull != null)
         {
             return displaySettingsManager.getDropDownSettings(displayTypeIdOrNull);
         } else
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java
index f73714d94217acfff950b46179cb836644c4f3f8..b0f8465218d3e67683b706d9879de0db795169a2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java
@@ -217,7 +217,8 @@ public final class PropertyTypeAssignmentForm extends LayoutContainer implements
                 if (materialTypeSelectionWidget == null)
                 {
                     materialTypeSelectionWidget =
-                            new MaterialTypeSelectionWidget(viewContext, MATERIAL_TYPE_ID_SUFFIX);
+                            new MaterialTypeSelectionWidget(viewContext, null,
+                                    MATERIAL_TYPE_ID_SUFFIX);
                     created = true;
                 }
                 result = materialTypeSelectionWidget;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeRegistrationForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeRegistrationForm.java
index 644f39174ccb74cfa2a11cb8eaa9ae5b04509c9a..1b68f064edebe52575226fe5b9a1b719d37b421c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeRegistrationForm.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeRegistrationForm.java
@@ -114,7 +114,7 @@ public final class PropertyTypeRegistrationForm extends AbstractRegistrationForm
     {
         String label = viewContext.getMessage(Dict.ALLOW_ANY_TYPE);
         MaterialTypeSelectionWidget chooser =
-                MaterialTypeSelectionWidget.createWithAdditionalOption(viewContext, label, ID);
+                MaterialTypeSelectionWidget.createWithAdditionalOption(viewContext, label, null, ID);
         FieldUtil.markAsMandatory(chooser);
         return chooser;
     }