diff --git a/scrplugin/pom.xml b/scrplugin/pom.xml
index 7c79a4f..8b383a9 100644
--- a/scrplugin/pom.xml
+++ b/scrplugin/pom.xml
@@ -67,7 +67,7 @@
 		<dependency>
 			<groupId>org.apache.felix</groupId>
 			<artifactId>org.apache.felix.scr.annotations</artifactId>
-			<version>1.3.0</version>
+			<version>1.3.1-SNAPSHOT</version>
 		</dependency>
         
         <!-- Sling Servlet SCR Annotation -->
diff --git a/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/PropertyTag.java b/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/PropertyTag.java
index 33ca627..4900d9e 100644
--- a/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/PropertyTag.java
+++ b/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/PropertyTag.java
@@ -20,8 +20,7 @@
 
 import java.util.*;
 
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.PropertyOption;
+import org.apache.felix.scr.annotations.*;
 import org.apache.felix.scrplugin.Constants;
 import org.apache.felix.scrplugin.tags.JavaClassDescription;
 import org.apache.felix.scrplugin.tags.JavaField;
@@ -124,6 +123,10 @@
                 return Util.getShortValues(annotation, desc, "shortValue");
             }
 
+            public PropertyUnbounded unbounded() {
+                return Util.getEnumValue(annotation, "unbounded", PropertyUnbounded.class, Property.class);
+            }
+
             public Class<? extends java.lang.annotation.Annotation> annotationType() {
                 return null;
             }
@@ -234,7 +237,15 @@
             }
         }
 
-        if (this.annotation.cardinality() != 0) {
+        // cardinality handling
+        final PropertyUnbounded pu = this.annotation.unbounded();
+        if ( pu != PropertyUnbounded.DEFAULT ) {
+            if ( pu == PropertyUnbounded.ARRAY ) {
+                map.put(Constants.PROPERTY_CARDINALITY, "+");
+            } else {
+                map.put(Constants.PROPERTY_CARDINALITY, "-");
+            }
+        } else if (this.annotation.cardinality() != 0) {
             map.put(Constants.PROPERTY_CARDINALITY, String.valueOf(this.annotation.cardinality()));
         }
 
