diff --git a/common/source/java/ch/systemsx/cisd/common/parser/AbstractParserObjectFactory.java b/common/source/java/ch/systemsx/cisd/common/parser/AbstractParserObjectFactory.java
index ad1565b5350e3667614b44ce1982037fe3295622..fbe1a80ba6c2f9ff153882cc6ba8029beba18b31 100644
--- a/common/source/java/ch/systemsx/cisd/common/parser/AbstractParserObjectFactory.java
+++ b/common/source/java/ch/systemsx/cisd/common/parser/AbstractParserObjectFactory.java
@@ -59,7 +59,7 @@ public abstract class AbstractParserObjectFactory<E> implements IParserObjectFac
         assert beanClass != null : "Given bean class can not be null.";
         assert propertyMapper != null : "Given property mapper can not be null.";
         propertyDescriptors = BeanUtils.getPropertyDescriptors(beanClass);
-        mandatoryFields = ClassUtils.getMandatoryFields(beanClass);
+        mandatoryFields = ClassUtils.getMandatoryFields(beanClass, true);
         checkPropertyMapper(beanClass, propertyMapper);
         this.propertyMapper = propertyMapper;
         converterPool = createConverterPool();
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 aa03989529cb716aed05b4b887b755604758699d..0f8d706733322a4d2b214ed086153deff74e3a65 100644
--- a/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java
+++ b/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java
@@ -46,14 +46,22 @@ public final class ClassUtils
      * <p>
      * Never returns <code>null</code> but could return an empty set.
      * </p>
+     * @param clazz The class to return the mandatory fields for.
+     * @param convertToLowerCase If <code>true</code>, all field names are converted to lower case in the set returned.
      */
-    public final static Set<String> getMandatoryFields(Class<?> clazz)
+    public final static Set<String> getMandatoryFields(Class<?> clazz, boolean convertToLowerCase)
     {
         final Set<String> set = new HashSet<String>();
         final List<Field> fields = ClassUtils.getMandatoryFieldsList(clazz);
         for (final Field field : fields)
         {
-            set.add(field.getName());
+            if (convertToLowerCase)
+            {
+                set.add(field.getName().toLowerCase());
+            } else
+            {
+                set.add(field.getName());
+            }
         }
         return set;
     }
diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/parser/AbstractParserObjectFactoryTest.java b/common/sourceTest/java/ch/systemsx/cisd/common/parser/AbstractParserObjectFactoryTest.java
index 86d20a129d14e8482082c1d3cf9ba75fd43a112b..d0196406ce425c6368a20b35273aed56b837718d 100644
--- a/common/sourceTest/java/ch/systemsx/cisd/common/parser/AbstractParserObjectFactoryTest.java
+++ b/common/sourceTest/java/ch/systemsx/cisd/common/parser/AbstractParserObjectFactoryTest.java
@@ -46,7 +46,7 @@ public final class AbstractParserObjectFactoryTest
 
     private final void checkBean(Bean bean)
     {
-        assertEquals("Bean Name", bean.name);
+        assertEquals("Bean Name", bean.nAme);
         assertEquals("Bean Description", bean.description);
         assertEquals(1, bean.number);
     }
@@ -151,20 +151,20 @@ public final class AbstractParserObjectFactoryTest
     public final static class Bean
     {
         @Mandatory
-        private String name;
+        private String nAme;
 
         private String description;
 
         private int number;
 
-        public final String getName()
+        public final String getNAme()
         {
-            return name;
+            return nAme;
         }
 
-        public final void setName(String name)
+        public final void setNAme(String name)
         {
-            this.name = name;
+            this.nAme = name;
         }
 
         public final int getNumber()