diff --git a/common/source/java/ch/systemsx/cisd/common/annotation/Mandatory.java b/common/source/java/ch/systemsx/cisd/common/annotation/Mandatory.java
index 286a9b7a8bf56e568f32a1ec1365deac475b147f..0cbeaf0d3cd5b2874bd488a64b05d4fdfb453155 100644
--- a/common/source/java/ch/systemsx/cisd/common/annotation/Mandatory.java
+++ b/common/source/java/ch/systemsx/cisd/common/annotation/Mandatory.java
@@ -28,9 +28,9 @@ import java.lang.annotation.Target;
  * @author Christian Ribeaud
  */
 @Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
+@Target(ElementType.FIELD)
 @Inherited
 public @interface Mandatory
 {
-    public String[] value();
+
 }
diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java b/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java
index 3d152769a6258c0708b496cc826d837836bb0ae6..e55f846ee226a982db75e1975e41f90e75814aee 100644
--- a/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java
+++ b/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java
@@ -24,8 +24,6 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import org.apache.commons.lang.ArrayUtils;
-
 import ch.systemsx.cisd.common.annotation.Mandatory;
 import ch.systemsx.cisd.common.exceptions.CheckedExceptionTunnel;
 
@@ -44,20 +42,17 @@ public final class ClassUtils
     /**
      * For given <code>Class</code> returns a list of fields that are annotated with {@link Mandatory}.
      */
-    public final static List<Field> getMandatoryFields(Class<?> clazz)
+    public final static List<Field> getMandatoryFields(Class clazz)
     {
-        final Mandatory mandatory = clazz.getAnnotation(Mandatory.class);
-        return getFields(clazz, null, mandatory == null ? null : mandatory.value());
+        return getMandatoryFields(clazz, null);
     }
-
+    
     /**
-     * For given <code>Class</code> (and eventually its superclasses) return a list of <code>Field</code> objects
-     * that matches the ones defined in <code>strFields</code>.
+     * For given <code>Class</code> returns a list of fields that are annotated with {@link Mandatory}.
      * 
      * @param fields if <code>null</code>, then a new <code>List</code> is created.
-     * @return never <code>null</code> but could return an empty <code>List</code>.
      */
-    public final static List<Field> getFields(Class<?> clazz, List<Field> fields, String... strFields)
+    private final static List<Field> getMandatoryFields(Class clazz, List<Field> fields)
     {
         List<Field> list = fields;
         if (list == null)
@@ -66,7 +61,7 @@ public final class ClassUtils
         }
         for (Field field : clazz.getDeclaredFields())
         {
-            if (ArrayUtils.indexOf(strFields, field.getName()) > -1)
+            if (field.getAnnotation(Mandatory.class) != null)
             {
                 list.add(field);
             }
@@ -74,7 +69,7 @@ public final class ClassUtils
         Class superclass = clazz.getSuperclass();
         if (superclass != null)
         {
-            return getFields(superclass, list, strFields);
+            return getMandatoryFields(superclass, list);
         }
         return list;
     }
diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/ClassUtilsTest.java b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/ClassUtilsTest.java
index a36999f2b7161efb251468f4645829ed81ac67ee..ebaa9f1cd0662aaebbbc83a31cbfc54ec8f7d054 100644
--- a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/ClassUtilsTest.java
+++ b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/ClassUtilsTest.java
@@ -16,15 +16,10 @@
 
 package ch.systemsx.cisd.common.utilities;
 
-import static org.testng.AssertJUnit.*;
-
-import java.lang.reflect.Field;
-import java.util.List;
+import static org.testng.AssertJUnit.assertEquals;
 
 import org.testng.annotations.Test;
 
-import ch.systemsx.cisd.common.annotation.Mandatory;
-
 /**
  * Test cases for the {@link ClassUtils} class.
  * 
@@ -33,50 +28,17 @@ import ch.systemsx.cisd.common.annotation.Mandatory;
 public final class ClassUtilsTest
 {
 
+    /**
+     * Test method for {@link ch.systemsx.cisd.common.utilities.ClassUtils#getCurrentMethod()}.
+     */
     @Test
     public final void testGetCurrentMethod()
     {
         assertEquals("testGetCurrentMethod", ClassUtils.getCurrentMethod().getName());
         // Border cases
-        assertEquals(new SameMethodName().getMethodName(), new SameMethodName().getMethodName(new Object(),
-                new Object()));
-    }
-
-    @Test
-    public final void testGetFields()
-    {
-        List<Field> fields = ClassUtils.getFields(A.class, null, "otherField");
-        assertNotNull(fields);
-        assert fields.size() == 0;
-        // A
-        fields = ClassUtils.getFields(A.class, null, "someField");
-        assertNotNull(fields);
-        assert fields.size() == 1;
-        // B
-        fields = ClassUtils.getFields(B.class, null, "someField");
-        assertNotNull(fields);
-        assert fields.size() == 1;
-        // C
-        fields = ClassUtils.getFields(C.class, null, "someField");
-        assertNotNull(fields);
-        assert fields.size() == 1;
+        assertEquals(new SameMethodName().getMethodName(), new SameMethodName().getMethodName(new Object(), new Object()));
     }
 
-    @Test
-    public final void testGetMandatoryFields()
-    {
-        List<Field> fields = ClassUtils.getMandatoryFields(A.class);
-        assertNotNull(fields);
-        assert fields.size() == 0;
-        fields = ClassUtils.getMandatoryFields(C.class);
-        assertNotNull(fields);
-        assert fields.size() == 2;
-    }
-
-    //
-    // Helper classes
-    //
-
     private final static class SameMethodName
     {
 
@@ -93,24 +55,4 @@ public final class ClassUtilsTest
         }
     }
 
-    @SuppressWarnings("unused")
-    private static class A
-    {
-        private Object someField;
-
-        private Object mandatoryField;
-    }
-
-    private static class B extends A
-    {
-
-    }
-
-    @Mandatory(
-        { "mandatoryField", "otherMandatoryField", "notPresentField" })
-    private final static class C extends B
-    {
-        @SuppressWarnings("unused")
-        private Object otherMandatoryField;
-    }
 }