diff --git a/jami-android/app/src/main/java/cx/ring/client/HomeActivity.kt b/jami-android/app/src/main/java/cx/ring/client/HomeActivity.kt
index 4451e309f14c33e898129de476dfc7523a995dc2..ea56b25b2141505c096ced6d2177953b178566b7 100644
--- a/jami-android/app/src/main/java/cx/ring/client/HomeActivity.kt
+++ b/jami-android/app/src/main/java/cx/ring/client/HomeActivity.kt
@@ -261,6 +261,7 @@ class HomeActivity : AppCompatActivity(), ContactPickerFragment.OnContactedPicke
         if (mHomeFragment == null) {
             mHomeFragment = HomeFragment()
             supportFragmentManager.beginTransaction()
+                .setReorderingAllowed(true)
                 .replace(R.id.home_fragment, mHomeFragment!!, HomeFragment::class.java.simpleName)
                 .commit()
         }
@@ -461,6 +462,7 @@ class HomeActivity : AppCompatActivity(), ContactPickerFragment.OnContactedPicke
         conversationBackPressedCallback.isEnabled = true
         supportFragmentManager.beginTransaction()
             .replace(R.id.conversation, conversation, ConversationFragment.TAG)
+            .setReorderingAllowed(true)
             .runOnCommit {
                 intent?.let { conversation.handleShareIntent(it) }
             }.commit()
@@ -476,6 +478,7 @@ class HomeActivity : AppCompatActivity(), ContactPickerFragment.OnContactedPicke
         frameContent = fragment
         supportFragmentManager
             .beginTransaction()
+            .setReorderingAllowed(true)
             .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
             .replace(R.id.frame, fragment, SettingsFragment.TAG)
             .addToBackStack(SettingsFragment.TAG)
@@ -492,6 +495,7 @@ class HomeActivity : AppCompatActivity(), ContactPickerFragment.OnContactedPicke
         mBinding!!.frame.isVisible = true
         supportFragmentManager
             .beginTransaction()
+            .setReorderingAllowed(true)
             //.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out, android.R.animator.fade_in, android.R.animator.fade_out)
             .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
             .replace(R.id.frame, fragment, AboutFragment.TAG)
@@ -529,6 +533,7 @@ class HomeActivity : AppCompatActivity(), ContactPickerFragment.OnContactedPicke
                 // Place it into the frame
                 frameContent = fragment
                 supportFragmentManager.beginTransaction()
+                        .setReorderingAllowed(true)
                         .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
                         .replace(R.id.frame, fragment, JamiAccountSummaryFragment.TAG)
                         .addToBackStack(JamiAccountSummaryFragment.TAG)
@@ -548,6 +553,7 @@ class HomeActivity : AppCompatActivity(), ContactPickerFragment.OnContactedPicke
                 // Place it into the frame
                 frameContent = fragment
                 supportFragmentManager.beginTransaction()
+                        .setReorderingAllowed(true)
                         .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
                         .replace(R.id.frame, fragment, AccountEditionFragment.TAG)
                         .addToBackStack(AccountEditionFragment.TAG)
diff --git a/jami-android/app/src/main/java/cx/ring/fragments/WelcomeJamiFragment.kt b/jami-android/app/src/main/java/cx/ring/fragments/WelcomeJamiFragment.kt
index 1912d1aa8391710ee45becee1e7f64c4169df315..4f03d8e07d966d8da7ae7bf88da05d9005393ba9 100644
--- a/jami-android/app/src/main/java/cx/ring/fragments/WelcomeJamiFragment.kt
+++ b/jami-android/app/src/main/java/cx/ring/fragments/WelcomeJamiFragment.kt
@@ -72,7 +72,8 @@ class WelcomeJamiFragment : Fragment() {
             // Create the JamiIdFragment
             childFragmentManager.beginTransaction()
                 .replace(R.id.jamiIdFragmentContainerView, JamiIdFragment())
-                .commit()
+                .setReorderingAllowed(true)
+                .commitAllowingStateLoss()
         }.root
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
diff --git a/jami-android/app/src/main/java/cx/ring/mvp/BaseBottomSheetFragment.java b/jami-android/app/src/main/java/cx/ring/mvp/BaseBottomSheetFragment.java
index f0aeb8a2c12499d5d75a27caa10584a988e03c87..56bcc1bc05f5b1a2ea4fce27f306cb6aeec57c8f 100644
--- a/jami-android/app/src/main/java/cx/ring/mvp/BaseBottomSheetFragment.java
+++ b/jami-android/app/src/main/java/cx/ring/mvp/BaseBottomSheetFragment.java
@@ -60,6 +60,7 @@ public abstract class BaseBottomSheetFragment<T extends RootPresenter> extends B
     protected void replaceFragmentWithSlide(Fragment fragment, @IdRes int content) {
         getParentFragmentManager()
                 .beginTransaction()
+                .setReorderingAllowed(true)
                 .setCustomAnimations(R.anim.slide_in_right,
                         R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right)
                 .replace(content, fragment, TAG)
@@ -70,6 +71,7 @@ public abstract class BaseBottomSheetFragment<T extends RootPresenter> extends B
     protected void replaceFragment(Fragment fragment, @IdRes int content) {
         getParentFragmentManager()
                 .beginTransaction()
+                .setReorderingAllowed(true)
                 .replace(content, fragment, TAG)
                 .addToBackStack(TAG)
                 .commit();
diff --git a/jami-android/app/src/main/java/cx/ring/mvp/BaseSupportFragment.kt b/jami-android/app/src/main/java/cx/ring/mvp/BaseSupportFragment.kt
index 69955dcd6e903c16aa34e4817225c895cd872a5b..e7708e60e5e6a7212171a8ad618ac0143216eb27 100644
--- a/jami-android/app/src/main/java/cx/ring/mvp/BaseSupportFragment.kt
+++ b/jami-android/app/src/main/java/cx/ring/mvp/BaseSupportFragment.kt
@@ -48,6 +48,7 @@ abstract class BaseSupportFragment<T : RootPresenter<in V>, in V> : Fragment() {
 
     protected fun replaceFragmentWithSlide(fragment: Fragment, tag: String?, @IdRes containerID: Int) {
         parentFragmentManager.beginTransaction()
+            .setReorderingAllowed(true)
             .setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right)
             .replace(containerID, fragment, tag)
             .addToBackStack(tag)
@@ -56,6 +57,7 @@ abstract class BaseSupportFragment<T : RootPresenter<in V>, in V> : Fragment() {
 
     protected fun replaceFragment(fragment: Fragment, tag: String?, @IdRes containerID: Int) {
         parentFragmentManager.beginTransaction()
+            .setReorderingAllowed(true)
             .replace(containerID, fragment, tag)
             .addToBackStack(tag)
             .commit()
diff --git a/jami-android/app/src/main/java/cx/ring/tv/account/TVShareActivity.kt b/jami-android/app/src/main/java/cx/ring/tv/account/TVShareActivity.kt
index 7e7cb5077ff068c6ab7af35d2ef18966fb6c574a..0eca27a48fa57dddb0cb522e8f15ab692ca9e227 100644
--- a/jami-android/app/src/main/java/cx/ring/tv/account/TVShareActivity.kt
+++ b/jami-android/app/src/main/java/cx/ring/tv/account/TVShareActivity.kt
@@ -32,15 +32,13 @@ class TVShareActivity : FragmentActivity() {
     var mAccountService: AccountService
 
     public override fun onCreate(savedInstanceState: Bundle?) {
-
         super.onCreate(savedInstanceState)
-
         setContentView(R.layout.tv_activity_share)
-
         val f = TVShareFragment.newInstance(Uri.fromString(mAccountService.currentAccount?.uri!!))
         supportFragmentManager.beginTransaction()
             .replace(R.id.share_frag, f)
-            .commit()
+            .setReorderingAllowed(true)
+            .commitNow()
     }
 
     companion object {
diff --git a/jami-android/app/src/main/java/cx/ring/tv/call/TVCallActivity.kt b/jami-android/app/src/main/java/cx/ring/tv/call/TVCallActivity.kt
index cbb3c216b0e334044d24a51a212d3ddbbdd77872..dbb12bcc4c1b38ef9b5c3c6cd2ee3b59a60f3c6f 100644
--- a/jami-android/app/src/main/java/cx/ring/tv/call/TVCallActivity.kt
+++ b/jami-android/app/src/main/java/cx/ring/tv/call/TVCallActivity.kt
@@ -59,6 +59,7 @@ class TVCallActivity : FragmentActivity() {
             callFragment = TVCallFragment.newInstance(intent.action!!, path.accountId, path.conversationId,
                 intent.extras!!.getString(Intent.EXTRA_PHONE_NUMBER, path.conversationId),  true)
             fragmentTransaction.replace(R.id.main_call_layout, callFragment!!, CALL_FRAGMENT_TAG)
+                .setReorderingAllowed(true)
                 .commit()
         } else {
             Log.d(TAG, "onCreate: incoming call")
@@ -66,6 +67,7 @@ class TVCallActivity : FragmentActivity() {
             Log.d(TAG, "onCreate: conf $confId")
             callFragment = TVCallFragment.newInstance(Intent.ACTION_VIEW, confId)
             fragmentTransaction.replace(R.id.main_call_layout, callFragment!!, CALL_FRAGMENT_TAG)
+                .setReorderingAllowed(true)
                 .commit()
         }
     }
diff --git a/jami-android/app/src/main/java/cx/ring/tv/contact/TVContactDetailPresenter.kt b/jami-android/app/src/main/java/cx/ring/tv/contact/TVContactDetailPresenter.kt
index 3a43e0754f2c458225be7afaf3cad8efb5c566cf..b993819393746201c4bdb01e8f6b3cac08f4192b 100644
--- a/jami-android/app/src/main/java/cx/ring/tv/contact/TVContactDetailPresenter.kt
+++ b/jami-android/app/src/main/java/cx/ring/tv/contact/TVContactDetailPresenter.kt
@@ -42,8 +42,9 @@ class TVContactDetailPresenter : Presenter() {
             val fragment = TvConversationFragment.newInstance(ConversationPath.toBundle(item.accountId, item.uri))
             val fragmentManager = (view.context as FragmentActivity).supportFragmentManager
             fragmentManager.beginTransaction()
+                .setReorderingAllowed(true)
                 .replace(R.id.content, fragment, FRAGMENT_TAG)
-                .commit()
+                .commitAllowingStateLoss()
         }
     }
 
diff --git a/jami-android/app/src/main/java/cx/ring/tv/main/MainFragment.kt b/jami-android/app/src/main/java/cx/ring/tv/main/MainFragment.kt
index 9b2f5f701f274f265f5138b965db37851b091eef..2b9240a8756090f0c921115fd10057e861afcf7d 100644
--- a/jami-android/app/src/main/java/cx/ring/tv/main/MainFragment.kt
+++ b/jami-android/app/src/main/java/cx/ring/tv/main/MainFragment.kt
@@ -138,9 +138,13 @@ class MainFragment : BaseBrowseFragment<MainPresenter>(), MainView {
     override fun showLoading(show: Boolean) {
         if (show) {
             parentFragmentManager.beginTransaction()
-                .replace(R.id.main_browse_fragment, mSpinnerFragment).commitAllowingStateLoss()
+                .setReorderingAllowed(true)
+                .replace(R.id.main_browse_fragment, mSpinnerFragment)
+                .commitAllowingStateLoss()
         } else {
-            parentFragmentManager.beginTransaction().remove(mSpinnerFragment)
+            parentFragmentManager.beginTransaction()
+                .setReorderingAllowed(true)
+                .remove(mSpinnerFragment)
                 .commitAllowingStateLoss()
         }
     }
@@ -321,6 +325,7 @@ class MainFragment : BaseBrowseFragment<MainPresenter>(), MainView {
                     arguments = ConversationPath.toBundle(model.accountId, model.uri)
                 }
                 parentFragmentManager.beginTransaction()
+                    .setReorderingAllowed(true)
                     .hide(this@MainFragment)
                     .add(R.id.fragment_container, contactFragment, TVContactFragment.TAG)
                     .addToBackStack(TVContactFragment.TAG)