diff --git a/fragment/CHANGELOG.md b/fragment/CHANGELOG.md
index 0ea055d..b14a2c3 100644
--- a/fragment/CHANGELOG.md
+++ b/fragment/CHANGELOG.md
@@ -16,7 +16,13 @@
 
 # Unreleased
 
+### Bug Fixes
+- Fixed an issue where the saved state stored when the activity was stopped but not destroyed
+  would be incorrectly cached even after the fragment instance was moved back to the RESUMED state.
+  This would cause that cached state to be reused if that fragment instance was on the back stack
+  when using the multiple back stacks API to save and restore that fragment.
+
 ### Dependency Updates
 
-* Changed dependency of Activity library from version 1.5.1 to version 1.7.1.
+- Changed dependency of Activity library from version 1.5.1 to version 1.7.1.
 
diff --git a/fragment/fragment/src/androidTest/java/androidx/fragment/app/SaveRestoreBackStackTest.kt b/fragment/fragment/src/androidTest/java/androidx/fragment/app/SaveRestoreBackStackTest.kt
index 413ec73..5781007 100644
--- a/fragment/fragment/src/androidTest/java/androidx/fragment/app/SaveRestoreBackStackTest.kt
+++ b/fragment/fragment/src/androidTest/java/androidx/fragment/app/SaveRestoreBackStackTest.kt
@@ -764,4 +764,55 @@
             assertThat(fm.backStackEntryCount).isEqualTo(0)
         }
     }
+
+    @Test
+    fun resumeClearsFragmentStoreSavedState() {
+        withUse(ActivityScenario.launch(FragmentTestActivity::class.java)) {
+            val fm = withActivity {
+                supportFragmentManager
+            }
+            val fragmentBase = StrictViewFragment()
+            val fragmentReplacement = StateSaveFragment()
+            val fragmentReplacementChild = StateSaveFragment()
+
+            fm.beginTransaction()
+                .add(R.id.content, fragmentBase)
+                .commit()
+            executePendingTransactions()
+
+            fm.beginTransaction()
+                .setReorderingAllowed(true)
+                .replace(R.id.content, fragmentReplacement)
+                .addToBackStack("replacement")
+                .commit()
+            executePendingTransactions()
+
+            fragmentReplacement.childFragmentManager.beginTransaction()
+                .add(fragmentReplacementChild, "replacementChild")
+                .commit()
+            executePendingTransactions(fragmentReplacement.childFragmentManager)
+
+            // stop activity and save fragments
+            moveToState(Lifecycle.State.CREATED)
+            executePendingTransactions()
+
+            // states should be stored in fragmentStore
+            assertThat(fm.fragmentStore.getSavedState(fragmentReplacement.mWho))
+                .isNotNull()
+            assertThat(fragmentReplacement.childFragmentManager.fragmentStore
+                .getSavedState(fragmentReplacementChild.mWho)
+            ).isNotNull()
+
+            // resume activity and restore fragments
+            moveToState(Lifecycle.State.RESUMED)
+            executePendingTransactions()
+
+            // states should be cleared from fragmentStore
+            assertThat(fm.fragmentStore.getSavedState(fragmentReplacement.mWho))
+                .isNull()
+            assertThat(fragmentReplacement.childFragmentManager.fragmentStore
+                .getSavedState(fragmentReplacementChild.mWho)
+            ).isNull()
+        }
+    }
 }
diff --git a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentStateManager.java b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentStateManager.java
index 3732759..68154fb 100644
--- a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentStateManager.java
+++ b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentStateManager.java
@@ -652,6 +652,7 @@
         mFragment.setFocusedView(null);
         mFragment.performResume();
         mDispatcher.dispatchOnFragmentResumed(mFragment, false);
+        mFragmentStore.setSavedState(mFragment.mWho, null);
         mFragment.mSavedFragmentState = null;
         mFragment.mSavedViewState = null;
         mFragment.mSavedViewRegistryState = null;
