diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentTest.kt
index a16a8dbe7470081881f075d046ef1267fa597e7d..6e3fd5cbb19531773ee4cfba240a3715161453df 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentTest.kt
@@ -86,6 +86,7 @@ class HomeFragmentTest : BaseUITest() {
             every { showLoweredRiskLevelDialog } returns MutableLiveData()
             every { homeItems } returns MutableLiveData(emptyList())
             every { popupEvents } returns SingleLiveEvent()
+            every { showPopUpsOrNavigate() } just Runs
         }
 
         setupMockViewModel(
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt
index f5236041c850c55a5bd3cae3d520a28d8a67a36f..296ebc8ee56512f41f0242bc7514e700ea6281b1 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt
@@ -115,6 +115,8 @@ class HomeFragment : Fragment(R.layout.home_fragment_layout), AutoInject {
             }
         }
 
+        vm.showPopUpsOrNavigate()
+
         vm.showLoweredRiskLevelDialog.observe2(this) {
             if (it) showRiskLevelLoweredDialog()
         }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt
index 559d1ef7e6099d14e91db50b44e1dce1be67d024..f2502663c5fe48039b84a2ed7666763a50474208 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragmentViewModel.kt
@@ -91,14 +91,20 @@ class HomeFragmentViewModel @AssistedInject constructor(
         .map { it.toHeaderState() }
         .asLiveData(dispatcherProvider.Default)
 
-    val popupEvents: SingleLiveEvent<HomeFragmentEvents> by lazy {
-        SingleLiveEvent<HomeFragmentEvents>().apply {
-            if (!LocalData.isInteroperabilityShownAtLeastOnce) {
-                postValue(ShowInteropDeltaOnboarding)
-            } else {
+    val popupEvents = SingleLiveEvent<HomeFragmentEvents>()
+
+    fun showPopUpsOrNavigate() {
+        when {
+            !LocalData.isInteroperabilityShownAtLeastOnce -> {
+                popupEvents.postValue(ShowInteropDeltaOnboarding)
+            }
+            cwaSettings.lastChangelogVersion.value < BuildConfigWrap.VERSION_CODE -> {
+                popupEvents.postValue(HomeFragmentEvents.ShowNewReleaseFragment)
+            }
+            else -> {
                 launch {
                     if (!LocalData.tracingExplanationDialogWasShown()) {
-                        postValue(
+                        popupEvents.postValue(
                             ShowTracingExplanation(
                                 TimeVariables.getActiveTracingDaysInRetentionPeriod()
                             )
@@ -107,13 +113,10 @@ class HomeFragmentViewModel @AssistedInject constructor(
                 }
                 launch {
                     if (errorResetTool.isResetNoticeToBeShown) {
-                        postValue(ShowErrorResetDialog)
+                        popupEvents.postValue(ShowErrorResetDialog)
                     }
                 }
             }
-            if (cwaSettings.lastChangelogVersion.value < BuildConfigWrap.VERSION_CODE) {
-                postValue(HomeFragmentEvents.ShowNewReleaseFragment)
-            }
         }
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/home/HomeFragmentViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/home/HomeFragmentViewModelTest.kt
index f0361f63d6ede3955ee581c3358ac21d04908e3c..2c06be47afc1095049636f2238b486ea8355b5f1 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/home/HomeFragmentViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/main/home/HomeFragmentViewModelTest.kt
@@ -2,9 +2,12 @@ package de.rki.coronawarnapp.main.home
 
 import android.content.Context
 import de.rki.coronawarnapp.appconfig.AppConfigProvider
+import de.rki.coronawarnapp.environment.BuildConfigWrap
 import de.rki.coronawarnapp.main.CWASettings
 import de.rki.coronawarnapp.notification.ShareTestResultNotificationService
+import de.rki.coronawarnapp.risk.TimeVariables
 import de.rki.coronawarnapp.statistics.source.StatisticsProvider
+import de.rki.coronawarnapp.storage.LocalData
 import de.rki.coronawarnapp.storage.TracingRepository
 import de.rki.coronawarnapp.submission.SubmissionRepository
 import de.rki.coronawarnapp.submission.ui.homecards.SubmissionDone
@@ -14,6 +17,7 @@ import de.rki.coronawarnapp.tracing.GeneralTracingStatus.Status
 import de.rki.coronawarnapp.tracing.states.LowRisk
 import de.rki.coronawarnapp.tracing.states.TracingStateProvider
 import de.rki.coronawarnapp.tracing.ui.statusbar.TracingHeaderState
+import de.rki.coronawarnapp.ui.main.home.HomeFragmentEvents
 import de.rki.coronawarnapp.ui.main.home.HomeFragmentViewModel
 import de.rki.coronawarnapp.util.DeviceUIState.PAIRED_POSITIVE
 import de.rki.coronawarnapp.util.DeviceUIState.PAIRED_POSITIVE_TELETAN
@@ -27,6 +31,7 @@ import io.mockk.coVerify
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
+import io.mockk.mockkObject
 import io.mockk.verify
 import kotlinx.coroutines.flow.emptyFlow
 import kotlinx.coroutines.flow.flow
@@ -40,6 +45,7 @@ import testhelpers.BaseTest
 import testhelpers.TestDispatcherProvider
 import testhelpers.extensions.CoroutinesTestExtension
 import testhelpers.extensions.InstantExecutorExtension
+import testhelpers.extensions.getOrAwaitValue
 import testhelpers.extensions.observeForTesting
 
 @ExtendWith(InstantExecutorExtension::class, CoroutinesTestExtension::class)
@@ -169,4 +175,35 @@ class HomeFragmentViewModelTest : BaseTest() {
             }
         }
     }
+
+    @Test
+    fun `test correct order of displaying delta onboarding, release notes and popups`() {
+
+        mockkObject(LocalData)
+        every { LocalData.isInteroperabilityShownAtLeastOnce } returns false andThen true
+
+        mockkObject(BuildConfigWrap)
+        every { BuildConfigWrap.VERSION_CODE } returns 1120004
+        every { cwaSettings.lastChangelogVersion.value } returns 1L andThen 1120004
+
+        every { LocalData.tracingExplanationDialogWasShown() } returns false andThen true
+        mockkObject(TimeVariables)
+        coEvery { TimeVariables.getActiveTracingDaysInRetentionPeriod() } coAnswers { 1 }
+
+        every { errorResetTool.isResetNoticeToBeShown } returns false andThen true
+
+        with(createInstance()) {
+            showPopUpsOrNavigate()
+            popupEvents.getOrAwaitValue() shouldBe HomeFragmentEvents.ShowInteropDeltaOnboarding
+
+            showPopUpsOrNavigate()
+            popupEvents.getOrAwaitValue() shouldBe HomeFragmentEvents.ShowNewReleaseFragment
+
+            showPopUpsOrNavigate()
+            popupEvents.getOrAwaitValue() shouldBe HomeFragmentEvents.ShowTracingExplanation(1)
+
+            showPopUpsOrNavigate()
+            popupEvents.getOrAwaitValue() shouldBe HomeFragmentEvents.ShowErrorResetDialog
+        }
+    }
 }