Fragment já adicionado IllegalStateException

Eu uso esse método no meu Activity do container para mostrar um 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();        
}

Eu chamo do meu contêiner Activity; pela primeira vez

get na instrução else e mBFrag substitui mAFra

Em seguida, pressiono o botão voltar:

e a operação é revertida (mAFrag é mostrado, mas .. o mBFrag é removido?

Então vou adiante chamando showBFrag () da mesma atividade:

e torna-se novamente na declaração else. (para deduzir que mBFrag NÃO É ADICIONADO) mas eu tenho umFragment já adicionado IllegalStateException ... (então por que não entrou na instrução if?)

Tão

Por que o método isAdded () não retorna TRUE se estou recebendo umFragment já adicionado IllegalStateException ??A operação popBackStack remove completamente os fragmentos adicionados anteriormente?Que comportamento estou entendendo mal?

EDIT: Aqui está a informação completa da exceçã

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);"

questionAnswers(11)

yourAnswerToTheQuestion