diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/BeanUtils.java b/common/source/java/ch/systemsx/cisd/common/utilities/BeanUtils.java
index b9e2e8002fd88b6cadb374e2b3740290dcec1e03..1e91d31e6d9e07d641ee304ab1c66262840792b4 100644
--- a/common/source/java/ch/systemsx/cisd/common/utilities/BeanUtils.java
+++ b/common/source/java/ch/systemsx/cisd/common/utilities/BeanUtils.java
@@ -280,10 +280,13 @@ public final class BeanUtils
     private static <T> T fillBean(Class<T> beanClass, Object sourceBean, AnnotationMap setterAnnotations,
             Converter converter)
     {
+        if (sourceBean == null)
+        {
+            return null;
+        }
         assert beanClass != null;
-        assert sourceBean != null;
-        assert setterAnnotations != null;
-        assert converter != null;
+        assert setterAnnotations != null : "undefined setter annotations for " + beanClass;
+        assert converter != null : "undefined converter for " + beanClass;
 
         try
         {
diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/BeanUtilsTest.java b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/BeanUtilsTest.java
index a89f99c71adcb67cc23c671c68c31054a095274d..ed90cbb6dedc4095878bd7ec33ffe013bfe2dbbb 100644
--- a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/BeanUtilsTest.java
+++ b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/BeanUtilsTest.java
@@ -687,6 +687,14 @@ public final class BeanUtilsTest
         }
     }
 
+    @Test
+    public void testFillComplexBeanWithNull()
+    {
+        final BeanWithBean1 b3 = new BeanWithBean1();
+        final BeanWithBean2 b4 = BeanUtils.fillBean(BeanWithBean2.class, b3);
+        assertEquals(null, b4.getBean());
+    }
+
     @Test
     public void testFillComplexBean()
     {
@@ -701,7 +709,7 @@ public final class BeanUtilsTest
         final Bean2a b2 = b4.getBean();
         assertBeansAreEqual("Bean comparison", b1, b2);
     }
-
+    
     public static class BeanWithBeanArray1
     {
         private Bean1a[] bean;