diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/CWAConfig.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/CWAConfig.kt
index 89532fb14ebdc44427de454e33ce6f4de4994de2..e0a59c5c81491acaa305699c9cea9e26cda9c88c 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/CWAConfig.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/CWAConfig.kt
@@ -11,7 +11,7 @@ interface CWAConfig {
 
     val supportedCountries: List<String>
 
-    val appFeatures: AppFeaturesOuterClass.AppFeatures
+    val appFeatures: List<AppFeaturesOuterClass.AppFeature>
 
     interface Mapper : ConfigMapper<CWAConfig>
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/mapping/CWAConfigMapper.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/mapping/CWAConfigMapper.kt
index 8c2e9502ffe4d60f99dfab4d11b24ea62e67a4b1..47b827428122cb17950186207ffd39ad2890791a 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/mapping/CWAConfigMapper.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/appconfig/mapping/CWAConfigMapper.kt
@@ -1,26 +1,24 @@
 package de.rki.coronawarnapp.appconfig.mapping
 
-import androidx.annotation.VisibleForTesting
 import dagger.Reusable
 import de.rki.coronawarnapp.appconfig.CWAConfig
-import de.rki.coronawarnapp.server.protocols.internal.v2.AppConfigAndroid
+import de.rki.coronawarnapp.server.protocols.internal.v2.AppConfigAndroid.ApplicationConfigurationAndroid
 import de.rki.coronawarnapp.server.protocols.internal.v2.AppFeaturesOuterClass
 import timber.log.Timber
 import javax.inject.Inject
 
 @Reusable
 class CWAConfigMapper @Inject constructor() : CWAConfig.Mapper {
-    override fun map(rawConfig: AppConfigAndroid.ApplicationConfigurationAndroid): CWAConfig {
+    override fun map(rawConfig: ApplicationConfigurationAndroid): CWAConfig {
         return CWAConfigContainer(
             latestVersionCode = rawConfig.latestVersionCode,
             minVersionCode = rawConfig.minVersionCode,
             supportedCountries = rawConfig.getMappedSupportedCountries(),
-            appFeatures = rawConfig.appFeatures
+            appFeatures = rawConfig.mapAppFeatures()
         )
     }
 
-    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
-    internal fun AppConfigAndroid.ApplicationConfigurationAndroid.getMappedSupportedCountries(): List<String> =
+    private fun ApplicationConfigurationAndroid.getMappedSupportedCountries(): List<String> =
         when {
             supportedCountriesList == null -> emptyList()
             supportedCountriesList.size == 1 && !VALID_CC.matches(supportedCountriesList.single()) -> {
@@ -30,11 +28,22 @@ class CWAConfigMapper @Inject constructor() : CWAConfig.Mapper {
             else -> supportedCountriesList
         }
 
+    private fun ApplicationConfigurationAndroid.mapAppFeatures(): List<AppFeaturesOuterClass.AppFeature> =
+        if (hasAppFeatures()) {
+            val parsedFeatures = mutableListOf<AppFeaturesOuterClass.AppFeature>()
+            for (index in 0 until appFeatures.appFeaturesCount) {
+                parsedFeatures.add(appFeatures.getAppFeatures(index))
+            }
+            parsedFeatures
+        } else {
+            emptyList()
+        }
+
     data class CWAConfigContainer(
         override val latestVersionCode: Long,
         override val minVersionCode: Long,
         override val supportedCountries: List<String>,
-        override val appFeatures: AppFeaturesOuterClass.AppFeatures
+        override val appFeatures: List<AppFeaturesOuterClass.AppFeature>
     ) : CWAConfig
 
     companion object {
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/mapping/CWAConfigMapperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/mapping/CWAConfigMapperTest.kt
index edebc20fd1c278450405d3ca202bd8ebd5721ab9..33977018ef71994627949c49d2765551a9fbf2e5 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/mapping/CWAConfigMapperTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/appconfig/mapping/CWAConfigMapperTest.kt
@@ -1,6 +1,7 @@
 package de.rki.coronawarnapp.appconfig.mapping
 
 import de.rki.coronawarnapp.server.protocols.internal.v2.AppConfigAndroid
+import de.rki.coronawarnapp.server.protocols.internal.v2.AppFeaturesOuterClass
 import io.kotest.matchers.shouldBe
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
@@ -45,4 +46,27 @@ class CWAConfigMapperTest : BaseTest() {
             this.supportedCountries shouldBe emptyList()
         }
     }
+
+    @Test
+    fun `app features are mapped`() {
+        val rawConfig = AppConfigAndroid.ApplicationConfigurationAndroid.newBuilder()
+            .setAppFeatures(
+                AppFeaturesOuterClass.AppFeatures.newBuilder().apply {
+                    addAppFeatures(AppFeaturesOuterClass.AppFeature.newBuilder().apply { }.build())
+                }
+            )
+            .build()
+        createInstance().map(rawConfig).apply {
+            appFeatures.size shouldBe 1
+        }
+    }
+
+    @Test
+    fun `app features being empty are handled`() {
+        val rawConfig = AppConfigAndroid.ApplicationConfigurationAndroid.newBuilder()
+            .build()
+        createInstance().map(rawConfig).apply {
+            appFeatures shouldBe emptyList()
+        }
+    }
 }