diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/ClientPluginFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/ClientPluginFactory.java
index 9bcffa1a57076a11b374257b2d20ef7f9c39a41e..b9c3d09ad5a62cead8bb17609c70151f0386afe5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/ClientPluginFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/ClientPluginFactory.java
@@ -131,11 +131,11 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<IDemo
         }
 
         public final DatabaseModificationAwareWidget createRegistrationForEntityType(
-                final SampleType sampleTypeCode)
+                final SampleType sampleType)
         {
             GenericSampleRegistrationForm form =
                     new GenericSampleRegistrationForm(new GenericViewContext(getViewContext()
-                            .getCommonViewContext()), sampleTypeCode);
+                            .getCommonViewContext()), sampleType);
             return new DatabaseModificationAwareWidget(form, form);
         }
 
@@ -194,9 +194,9 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<IDemo
         return DefaultTabItem.createUnaware(identifier, component, false);
     }
 
-//    @Override
-//    public IModule tryGetModule()
-//    {
-//        return new DemoModule(getViewContext());
-//    }
+    // @Override
+    // public IModule tryGetModule()
+    // {
+    // return new DemoModule(getViewContext());
+    // }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/AbstractGenericSampleRegisterEditForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/AbstractGenericSampleRegisterEditForm.java
index d1cf44bebb3cf4a8f87c5d064ced1160e1b7db19..c1df416f955f115e535e6d28ea3f1e396e64d860 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/AbstractGenericSampleRegisterEditForm.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/AbstractGenericSampleRegisterEditForm.java
@@ -61,6 +61,8 @@ abstract public class AbstractGenericSampleRegisterEditForm extends
 
     public static final String ID_SUFFIX_EXPERIMENT = "experiment";
 
+    protected SampleType sampleType; // used for container and parent field visibility
+
     protected AttachmentsFileFieldManager attachmentsManager;
 
     protected String attachmentsSessionKey;
@@ -196,6 +198,7 @@ abstract public class AbstractGenericSampleRegisterEditForm extends
                 }
             });
         redefineSaveListeners();
+        setContainerAndParentVisibility(sampleType);
     }
 
     protected final String createSampleIdentifier()
@@ -212,4 +215,13 @@ abstract public class AbstractGenericSampleRegisterEditForm extends
         return builder.toString().toUpperCase();
     }
 
+    /** sets visibility of container and parent fields dependent on sample type */
+    private final void setContainerAndParentVisibility(final SampleType sampleType)
+    {
+        boolean showContainer = sampleType.getContainerHierarchyDepth() > 0;
+        boolean showParent = sampleType.getGeneratedFromHierarchyDepth() > 0;
+        container.getField().setVisible(showContainer);
+        parent.getField().setVisible(showParent);
+    }
+
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleEditForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleEditForm.java
index 7bdeafa868a0ddbfd389ac0d4901fe47c3db1b4b..bcbcaac9eddbb28bc134c621b2b2eb034231534c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleEditForm.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleEditForm.java
@@ -109,6 +109,7 @@ public final class GenericSampleEditForm extends AbstractGenericSampleRegisterEd
     private void setOriginalSample(Sample sample)
     {
         this.originalSample = sample;
+        this.sampleType = sample.getSampleType();
     }
 
     @Override
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationForm.java
index a6c939e7cee21d1e56fbea906cc44ab9c6c04a51..94a4d0feb0382dad620586fe132f29a9487620a6 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationForm.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationForm.java
@@ -35,8 +35,6 @@ import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientS
  */
 public final class GenericSampleRegistrationForm extends AbstractGenericSampleRegisterEditForm
 {
-    private final SampleType sampleType;
-
     public GenericSampleRegistrationForm(
             final IViewContext<IGenericClientServiceAsync> viewContext, final SampleType sampleType)
     {