diff --git a/pom.xml b/pom.xml
index dc15f7f..7ffd003 100644
--- a/pom.xml
+++ b/pom.xml
@@ -122,19 +122,19 @@
            <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.launcher</artifactId>
-            <version>0.2.0</version>
+            <version>0.2.1-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.io</artifactId>
-            <version>0.2.0</version>
+            <version>0.2.1-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature</artifactId>
-            <version>0.2.0</version>
+            <version>0.2.1-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
diff --git a/src/main/java/org/apache/sling/feature/extension/content/ContentOrderMergeProcessor.java b/src/main/java/org/apache/sling/feature/extension/content/ContentOrderMergeProcessor.java
index 82ad7db..3d5d51e 100644
--- a/src/main/java/org/apache/sling/feature/extension/content/ContentOrderMergeProcessor.java
+++ b/src/main/java/org/apache/sling/feature/extension/content/ContentOrderMergeProcessor.java
@@ -21,10 +21,11 @@
 import org.apache.sling.feature.ExtensionType;
 import org.apache.sling.feature.Feature;
 import org.apache.sling.feature.FeatureConstants;
-import org.apache.sling.feature.KeyValueMap;
 import org.apache.sling.feature.builder.HandlerContext;
 import org.apache.sling.feature.builder.MergeHandler;
 
+import java.util.Map;
+
 public class ContentOrderMergeProcessor implements MergeHandler {
 
     public static final String DEFAULT_CONTENT_START_ORDER = "default.content.startorder";
@@ -36,7 +37,7 @@
         String defaultOrder = feature.getVariables().get(DEFAULT_CONTENT_START_ORDER);
         if (defaultOrder != null) {
             for (Artifact a : extension.getArtifacts()) {
-                KeyValueMap kvm = a.getMetadata();
+                Map<String,String> kvm = a.getMetadata();
                 if(kvm.get(Artifact.KEY_START_ORDER) == null) {
                     kvm.put(Artifact.KEY_START_ORDER, defaultOrder);
                 }
