diff --git a/src/main/java/org/apache/sling/maven/projectsupport/ArtifactDefinition.java b/src/main/java/org/apache/sling/maven/projectsupport/ArtifactDefinition.java
index f9f6ab3..d8e38f1 100644
--- a/src/main/java/org/apache/sling/maven/projectsupport/ArtifactDefinition.java
+++ b/src/main/java/org/apache/sling/maven/projectsupport/ArtifactDefinition.java
@@ -190,12 +190,13 @@
         if ( values.length == 6 ) {
             initDefaults(values[0], values[1], values[2], values[3], values[4],
                     Integer.valueOf(values[5]));
-        }
-        this.bundles = new ArtifactDefinition[values.length / 6];
-        for(int i=0; i<values.length / 6; i++) {
-            this.bundles[i] = new ArtifactDefinition();
-            this.bundles[i].initDefaults(values[i*6 + 0], values[i*6 + 1], values[i*6 + 2], values[i*6 + 3], values[i*6 + 4],
-                    Integer.valueOf(values[i*6 + 5]));
+        } else {
+            this.bundles = new ArtifactDefinition[values.length / 6];
+            for(int i=0; i<values.length / 6; i++) {
+                this.bundles[i] = new ArtifactDefinition();
+                this.bundles[i].initDefaults(values[i*6 + 0], values[i*6 + 1], values[i*6 + 2], values[i*6 + 3], values[i*6 + 4],
+                        Integer.valueOf(values[i*6 + 5]));
+            }
         }
     }
 
