diff --git a/metatype/src/main/java/org/apache/felix/metatype/AD.java b/metatype/src/main/java/org/apache/felix/metatype/AD.java
index 05fe4e3..f141edc 100644
--- a/metatype/src/main/java/org/apache/felix/metatype/AD.java
+++ b/metatype/src/main/java/org/apache/felix/metatype/AD.java
@@ -372,11 +372,16 @@
 
     public static String[] splitList( String listString )
     {
-        // return nothing ...
+        // check for non-existing or empty lists
         if ( listString == null )
         {
             return null;
         }
+        else if ( listString.length() == 0 )
+        {
+            return new String[]
+                { "" };
+        }
 
         List values = new ArrayList();
         boolean escape = false;
diff --git a/metatype/src/test/java/org/apache/felix/metatype/ADTest.java b/metatype/src/test/java/org/apache/felix/metatype/ADTest.java
index 7029cc5..77bfcfd 100644
--- a/metatype/src/test/java/org/apache/felix/metatype/ADTest.java
+++ b/metatype/src/test/java/org/apache/felix/metatype/ADTest.java
@@ -1,4 +1,4 @@
-/* 
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -27,7 +27,7 @@
 /**
  * The <code>ADTest</code> class tests the static helper methods of the
  * {@link AD} class.
- * 
+ *
  * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class ADTest extends TestCase
@@ -48,7 +48,9 @@
     {
         String listString = "";
         String[] list = AD.splitList( listString );
-        assertNull( list );
+        assertNotNull( list );
+        assertEquals( 1, list.length );
+        assertEquals( listString, list[0] );
     }
 
 
