Fragment déjà ajouté l'exception IllegalStateException

J'utilise cette méthode sur mon Activité conteneur pour afficher une BFrag

public void showBFrag()
{
    //Start a new FragmentTransaction
    FragmentTransaction fragmentTransaction = mFragmentMgr.beginTransaction();

    if(mBFrag.isAdded())
    {
        Log.d(LOG_TAG, "Show() BFrag");
        fragmentTransaction.show(mBFrag);   
    }
    else
    {
        Log.d(LOG_TAG, "Replacing AFrag -> BFrag");
        fragmentTransaction.replace(R.id.operation_fragments_frame, mBFrag);
    }

    //Keep the transaction in the back stack so it will be reversed when backbutton is pressed
    fragmentTransaction.addToBackStack(null);

    //Commit transaction
    fragmentTransaction.commit();        
}

Je l'appelle de mes Activités de manutention de conteneurs; pour la première fois:

  • rentre dans le else et mBFrag remplacer mAFrag.

Alors j'ai appuyer sur le bouton de retour:

  • et le fonctionnement est inversé (mAFrag est montré, mais.. est-ce que mBFrag est supprimé?).

Puis-je aller de l'avant à nouveau en appelant showBFrag() de la même Activité:

  • et il obtient de NOUVEAU dans le else. (donc je peux en déduire que mBFrag n'est PAS AJOUTÉ)
  • mais j'ai eu un Fragment déjà ajouté l'exception IllegalStateException... (alors pourquoi il n'a pas entrer dans l'instruction si à la place?)

Donc:

  1. Pourquoi le isAdded() la méthode ne retourne pas VRAI que si je suis un Fragment déjà ajouté l'exception IllegalStateException??
  2. Ne popBackStack opération de supprimer complètement précédemment ajouté des fragments?
  3. Ce comportement je suis malentendu?

EDIT:
Ici est l'info de l'exception.

06-07 12:08:32.730: ERROR/AndroidRuntime(8576): java.lang.IllegalStateException: Fragment already added: BFrag{40b28158 id=0x7f0c0085}
06-07 12:08:32.730: ERROR/AndroidRuntime(8576):     at android.app.BackStackRecord.doAddOp(BackStackRecord.java:322)
06-07 12:08:32.730: ERROR/AndroidRuntime(8576):     at android.app.BackStackRecord.replace(BackStackRecord.java:360)
06-07 12:08:32.730: ERROR/AndroidRuntime(8576):     at android.app.BackStackRecord.replace(BackStackRecord.java:352)
06-07 12:08:32.730: ERROR/AndroidRuntime(8576):     at myPackageName.containerActivity.showBFrag() //This line: "fragmentTransaction.replace(R.id.operation_fragments_frame, mBFrag);"