diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/IEntityType.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/IEntityType.java
index c9299ec8e99c38a9cca1807f182415f9fcf94022..89771146cda52a351b00b69d8b1d1663eeaaeee3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/IEntityType.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/IEntityType.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.openbis.generic.server.jython.api.v1;
 
+
 /**
  * The superinterface for all entity types (as opposed to property types).
  * 
@@ -28,4 +29,9 @@ public interface IEntityType extends IAbstractType
      * Return the entity kind.
      */
     EntityKind getEntityKind();
+
+    /**
+     * Return the validation script for this type
+     */
+    IScriptImmutable getValidationScript();
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/IScriptImmutable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/IScriptImmutable.java
index fb6c4ec942a4b6c9617a225a4aaf895dc96a9e14..f1513aa8f51d51d3284840213088ed0c6def779c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/IScriptImmutable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/IScriptImmutable.java
@@ -21,7 +21,7 @@ package ch.systemsx.cisd.openbis.generic.server.jython.api.v1;
  * 
  * @author Manuel Kohler
  */
-public interface IScriptImmutable extends IEntityType
+public interface IScriptImmutable extends IAbstractType
 {
     /**
      * Get the entity of the script. The values can be EXPERIMENT, SAMPLE, DATA_SET, MATERIAL.
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/DataSetTypeImmutable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/DataSetTypeImmutable.java
index bcb036058765ceb2850cd2880fd873795acf9c42..6015d6b46cac8c3b385ec0f658fe09c613cfad9a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/DataSetTypeImmutable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/DataSetTypeImmutable.java
@@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl;
 
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.EntityKind;
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IDataSetTypeImmutable;
+import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IScriptImmutable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetKind;
 
 /**
@@ -98,4 +99,10 @@ public class DataSetTypeImmutable implements IDataSetTypeImmutable
     {
         return getDataSetType().getMainDataSetPath();
     }
+
+    @Override
+    public IScriptImmutable getValidationScript()
+    {
+        return new ScriptImmutable(getDataSetType().getValidationScript());
+    }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/ExperimentTypeImmutable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/ExperimentTypeImmutable.java
index 30034e77aed86ebca2535950675cd8708fa02912..8579b5358afc2344d91f49a174cb36cdc42be3e9 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/ExperimentTypeImmutable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/ExperimentTypeImmutable.java
@@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl;
 
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.EntityKind;
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IExperimentTypeImmutable;
+import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IScriptImmutable;
 
 /**
  * @author Kaloyan Enimanev
@@ -61,4 +62,9 @@ public class ExperimentTypeImmutable implements IExperimentTypeImmutable
         return EntityKind.EXPERIMENT;
     }
 
+    @Override
+    public IScriptImmutable getValidationScript()
+    {
+        return new ScriptImmutable(getExperimentType().getValidationScript());
+    }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/MaterialTypeImmutable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/MaterialTypeImmutable.java
index c006e1e5ec945e28c14dccffdce3010ca5f34352..f87ca9531b8f52a11e5f680c510f253a6721d746 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/MaterialTypeImmutable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/MaterialTypeImmutable.java
@@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl;
 
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.EntityKind;
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IMaterialTypeImmutable;
+import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IScriptImmutable;
 
 /**
  * @author Kaloyan Enimanev
@@ -62,4 +63,9 @@ public class MaterialTypeImmutable implements IMaterialTypeImmutable
         return EntityKind.MATERIAL;
     }
 
+    @Override
+    public IScriptImmutable getValidationScript()
+    {
+        return new ScriptImmutable(getMaterialType().getValidationScript());
+    }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/SampleTypeImmutable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/SampleTypeImmutable.java
index 1d25181691baee6064496d9ac6e9d79823db336a..c008c6a4dfd285bfe122fac4812d969fc0c5b4ff 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/SampleTypeImmutable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/SampleTypeImmutable.java
@@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl;
 
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.EntityKind;
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.ISampleTypeImmutable;
+import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IScriptImmutable;
 
 /**
  * @author Kaloyan Enimanev
@@ -101,4 +102,10 @@ public class SampleTypeImmutable implements ISampleTypeImmutable
     {
         return EntityKind.SAMPLE;
     }
+
+    @Override
+    public IScriptImmutable getValidationScript()
+    {
+        return new ScriptImmutable(getSampleType().getValidationScript());
+    }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/ScriptImmutable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/ScriptImmutable.java
index 6f1a873cca3e9bc6850122ece984982d11a6e464..f9b84f32e4dba8d0ee5ce0b965a42b6a04e2d6bb 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/ScriptImmutable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/jython/api/v1/impl/ScriptImmutable.java
@@ -16,7 +16,6 @@
 
 package ch.systemsx.cisd.openbis.generic.server.jython.api.v1.impl;
 
-import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.EntityKind;
 import ch.systemsx.cisd.openbis.generic.server.jython.api.v1.IScriptImmutable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Script;
@@ -105,11 +104,4 @@ public class ScriptImmutable implements IScriptImmutable
         return script.getName();
     }
 
-    @Override
-    public EntityKind getEntityKind()
-    {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
 }