diff --git a/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java b/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java
index 3ba81a5..cb6e8e9 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java
@@ -134,7 +134,7 @@
             String text = formatter.toString();
 
             if (!text.isEmpty()) {
-                featureManager.addOrAppendRepoInitExtension(text);
+                featureManager.addOrAppendRepoInitExtension(text, null);
             }
         } finally {
             if (formatter != null) {
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/features/DefaultFeaturesManager.java b/src/main/java/org/apache/sling/feature/cpconverter/features/DefaultFeaturesManager.java
index 1841244..ecf3b15 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/features/DefaultFeaturesManager.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/features/DefaultFeaturesManager.java
@@ -35,6 +35,7 @@
 import org.apache.sling.feature.Artifacts;
 import org.apache.sling.feature.Configuration;
 import org.apache.sling.feature.Extension;
+import org.apache.sling.feature.ExtensionState;
 import org.apache.sling.feature.ExtensionType;
 import org.apache.sling.feature.Extensions;
 import org.apache.sling.feature.Feature;
@@ -278,15 +279,16 @@
         targetAPIRegions.addAll(regions);
         return this;
     }
-
+    
     @Override
-    public void addOrAppendRepoInitExtension(String text) {
+    public void addOrAppendRepoInitExtension(String text, String runMode) {
         
-        Extension repoInitExtension = getTargetFeature().getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
+        logger.info("Adding/Appending RepoInitExtension for runMode: {}", runMode );
+        Extension repoInitExtension = getRunMode(runMode).getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
         
         if (repoInitExtension == null) {
-            repoInitExtension = new Extension(ExtensionType.TEXT, Extension.EXTENSION_NAME_REPOINIT, true);
-            getTargetFeature().getExtensions().add(repoInitExtension);
+            repoInitExtension = new Extension(ExtensionType.TEXT, Extension.EXTENSION_NAME_REPOINIT, ExtensionState.REQUIRED);
+            getRunMode(runMode).getExtensions().add(repoInitExtension);
             repoInitExtension.setText(text);
         } else {
             repoInitExtension.setText(repoInitExtension.getText() + "\n " + text);
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/features/FeaturesManager.java b/src/main/java/org/apache/sling/feature/cpconverter/features/FeaturesManager.java
index be1b5ff..b247ca2 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/features/FeaturesManager.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/features/FeaturesManager.java
@@ -37,6 +37,6 @@
 
     void serialize() throws Exception;
 
-    void addOrAppendRepoInitExtension(String text);
+    void addOrAppendRepoInitExtension(String text, String runMode);
 
 }
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/handlers/AbstractConfigurationEntryHandler.java b/src/main/java/org/apache/sling/feature/cpconverter/handlers/AbstractConfigurationEntryHandler.java
index 0c3dfda..59413cd 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/handlers/AbstractConfigurationEntryHandler.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/handlers/AbstractConfigurationEntryHandler.java
@@ -80,7 +80,7 @@
             String[] scripts = (String[]) configurationProperties.get("scripts");
             if (scripts != null) {
                 String text = String.join("\n", scripts);
-                converter.getFeaturesManager().addOrAppendRepoInitExtension(text);
+                converter.getFeaturesManager().addOrAppendRepoInitExtension(text, runMode);
             } else {
                 // any repoinit configuration with empty scripts may be igored - filereferences are not supported at that point
             }
diff --git a/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigurationEntryHandlerTest.java b/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigurationEntryHandlerTest.java
index d9a2215..f71cc2d 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigurationEntryHandlerTest.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigurationEntryHandlerTest.java
@@ -65,13 +65,16 @@
     private final int expectedConfigurationsSize;
 
     private final AbstractConfigurationEntryHandler configurationEntryHandler;
+    private final String expectedRunMode;
 
     public ConfigurationEntryHandlerTest(String resourceConfiguration,
                                          int expectedConfigurationsSize,
-                                         AbstractConfigurationEntryHandler configurationEntryHandler) {
+                                         AbstractConfigurationEntryHandler configurationEntryHandler, 
+                                         String expectedRunMode) {
         this.resourceConfiguration = resourceConfiguration;
         this.expectedConfigurationsSize = expectedConfigurationsSize;
         this.configurationEntryHandler = configurationEntryHandler;
+        this.expectedRunMode = expectedRunMode;
     }
 
     @Test
@@ -102,13 +105,12 @@
 
         configurationEntryHandler.handle(resourceConfiguration, archive, entry, converter);
 
-        Configurations configurations = featuresManager.getTargetFeature().getConfigurations();
+        Configurations configurations = featuresManager.getRunMode(expectedRunMode).getConfigurations();
 
         assertEquals(expectedConfigurationsSize, configurations.size());
 
-        
         if (this.resourceConfiguration.equals(REPOINIT_TESTCONFIG_PATH)) {
-            assertEquals(EXPECTED_REPOINIT, featuresManager.getTargetFeature().getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT).getText());
+            assertEquals(EXPECTED_REPOINIT, featuresManager.getRunMode(expectedRunMode).getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT).getText());
         }
 
         if (expectedConfigurationsSize != 0) {
@@ -129,25 +131,25 @@
         String path = "/jcr_root/apps/asd/config/";
 
         return Arrays.asList(new Object[][] {
-            { path + EXPECTED_PID + ".empty.cfg", 1, new PropertiesConfigurationEntryHandler() },
-            { path + EXPECTED_PID + ".cfg", 1, new PropertiesConfigurationEntryHandler() },
+            { path + EXPECTED_PID + ".empty.cfg", 1, new PropertiesConfigurationEntryHandler(), null },
+            { path + EXPECTED_PID + ".cfg", 1, new PropertiesConfigurationEntryHandler(), null },
 
-            { path + EXPECTED_PID + ".empty.cfg.json", 1, new JsonConfigurationEntryHandler() },
-            { path + EXPECTED_PID + ".cfg.json", 1, new JsonConfigurationEntryHandler() },
+            { path + EXPECTED_PID + ".empty.cfg.json", 1, new JsonConfigurationEntryHandler(), null },
+            { path + EXPECTED_PID + ".cfg.json", 1, new JsonConfigurationEntryHandler(), null },
 
-            { path + EXPECTED_PID + ".empty.config", 1, new ConfigurationEntryHandler() },
-            { path + EXPECTED_PID + ".config", 1, new ConfigurationEntryHandler() },
+            { path + EXPECTED_PID + ".empty.config", 1, new ConfigurationEntryHandler(), null },
+            { path + EXPECTED_PID + ".config", 1, new ConfigurationEntryHandler(), null },
 
-            { path + EXPECTED_PID + ".empty.xml", 1, new XmlConfigurationEntryHandler() },
-            { path + EXPECTED_PID + ".xml", 1, new XmlConfigurationEntryHandler() },
+            { path + EXPECTED_PID + ".empty.xml", 1, new XmlConfigurationEntryHandler(), null },
+            { path + EXPECTED_PID + ".xml", 1, new XmlConfigurationEntryHandler(), null },
 
-            { path + EXPECTED_PID + ".empty.xml.cfg", 1, new PropertiesConfigurationEntryHandler() },
-            { path + EXPECTED_PID + ".xml.cfg", 1, new PropertiesConfigurationEntryHandler() },
+            { path + EXPECTED_PID + ".empty.xml.cfg", 1, new PropertiesConfigurationEntryHandler(), null },
+            { path + EXPECTED_PID + ".xml.cfg", 1, new PropertiesConfigurationEntryHandler(), null },
 
             // runmode aware folders
-            { "/jcr_root/apps/asd/config.author/" + EXPECTED_PID + ".config", 1, new ConfigurationEntryHandler() },
-            { REPOINIT_TESTCONFIG_PATH, 0, new ConfigurationEntryHandler() },
-            { "/jcr_root/apps/asd/config.publish/" + EXPECTED_PID + ".config", 1, new ConfigurationEntryHandler() },
+            { "/jcr_root/apps/asd/config.author/" + EXPECTED_PID + ".config", 1, new ConfigurationEntryHandler(), "author" },
+            { REPOINIT_TESTCONFIG_PATH, 0, new ConfigurationEntryHandler() , "author"},
+            { "/jcr_root/apps/asd/config.publish/" + EXPECTED_PID + ".config", 1, new ConfigurationEntryHandler(), "publish" }
         });
     }
 
