diff --git a/metatype/src/main/java/org/apache/felix/metatype/Attribute.java b/metatype/src/main/java/org/apache/felix/metatype/Attribute.java
index 81a5bc1..2aa3a63 100644
--- a/metatype/src/main/java/org/apache/felix/metatype/Attribute.java
+++ b/metatype/src/main/java/org/apache/felix/metatype/Attribute.java
@@ -23,7 +23,7 @@
  * The <code>Attribute</code> TODO
  *
  * @author fmeschbe
- * @version $Rev:$, $Date:$
+ * @version $Rev$, $Date$
  */
 public class Attribute
 {
@@ -63,16 +63,25 @@
                 String[] newContent = new String[content.length + added.length];
                 System.arraycopy( content, 0, newContent, 0, content.length );
                 System.arraycopy( added, 0, newContent, content.length, added.length );
+                content = newContent;
             }
         }
     }
 
 
-    public void addContent( String content )
+    public void addContent( String content, boolean split )
     {
         if ( content != null )
         {
-            addContent( AD.splitList( content ) );
+            if ( split )
+            {
+            	addContent( AD.splitList( content ) );
+            }
+            else
+            {
+            	addContent( new String[] { content } );
+            }
         }
     }
+    
 }
diff --git a/metatype/src/main/java/org/apache/felix/metatype/MetaDataReader.java b/metatype/src/main/java/org/apache/felix/metatype/MetaDataReader.java
index eb1dfb5..10be489 100644
--- a/metatype/src/main/java/org/apache/felix/metatype/MetaDataReader.java
+++ b/metatype/src/main/java/org/apache/felix/metatype/MetaDataReader.java
@@ -365,7 +365,7 @@
     {
         Attribute ah = this.createAttribute();
         ah.setAdRef( this.getRequiredAttribute( "adref" ) );
-        ah.addContent( this.getOptionalAttribute( "content" ) );
+        ah.addContent( this.getOptionalAttribute( "content" ), true );
 
         int eventType = this.parser.next();
         while ( eventType != XmlPullParser.END_DOCUMENT )
@@ -374,7 +374,7 @@
             {
                 if ( "Value".equals( this.parser.getName() ) )
                 {
-                    ah.addContent( this.parser.nextText() );
+                    ah.addContent( this.parser.nextText(), false );
                     eventType = this.parser.getEventType();
                     continue;
                 }
