improve
diff --git a/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/features/impl/AbstractFeatureProvider.java b/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/features/impl/AbstractFeatureProvider.java
index a298905..54e89fa 100644
--- a/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/features/impl/AbstractFeatureProvider.java
+++ b/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/features/impl/AbstractFeatureProvider.java
@@ -433,7 +433,7 @@
 
 		if (getIndependenceSolver() != null) {
 			Property property = Graphiti.getPeService().getProperty(pictogramElement, ExternalPictogramLink.KEY_INDEPENDENT_PROPERTY);
-			if (property != null && property.getValue() != null && !property.getValue().isEmpty()) {
+			if (property != null && property.getValue() != null) {
 				String value = property.getValue();
 				String[] values = getValues(value);
 				for (String v : values) {
@@ -453,9 +453,11 @@
 	}
 
 	private String[] getValues(String value) {
-		String[] result;
-		result = st.decode(value);
-		return result;
+		if (value.isEmpty()) {
+			return new String[0];
+		}else {
+			return st.decode(value);
+		}
 	}
 
 	@Override
@@ -471,7 +473,8 @@
 			Property property = Graphiti.getPeService().getProperty(pictogramElement, ExternalPictogramLink.KEY_INDEPENDENT_PROPERTY);
 			if (property != null && property.getValue() != null) {
 				String[] values = getValues(property.getValue());
-				ret = getIndependenceSolver().getBusinessObjectForKey(values[0]);
+				if (values.length > 0)
+					ret = getIndependenceSolver().getBusinessObjectForKey(values[0]);
 				if (ret != null) {
 					if (info) {
 						T.racer().exiting(AbstractFeatureProvider.class, SIGNATURE, ret);