ActivityForResult com problemas

Tenho em minha aplicação diversas chamadas entre as activities, onde utilizo em sua grande maioria a opção de startActivityForResult. Mas tenho uma activity que ao clicar no botão voltar da aplicação utilizando o método NavUtils.navigateUpFromSameTask(this); ele não chama o onActivityResult da activity pai, indo direto para o onCreate.
Fiz um teste utilizando método onBackPressed com o finish() e aí funcionou, ele chamou o onActivityResult para esta activity. Mas o engraçado é que em outras activities eu faço a mesma coisa (utilizando o NavUtils.navigateUpFromSameTask(this):wink: e ele chama o activityResult.
Alguém já passou por isso?

Segue abaixo os códigos caso queiram analisar:

Activity filha

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == android.R.id.home) {
      Intent it = new Intent();
      it.putExtra(PRODUTO_SELECIONADO, (Serializable) pedidoItem);
      it.putExtra(CLIENTE_SELECIONADO, pedidoCabecalho);
      it.putExtra(SUBTOTAL, subTotalSt);
     setResult(2, it);
     NavUtils.navigateUpFromSameTask(this);
    }
    return super.onOptionsItemSelected(item);
}

AndroidManifest

<activity
            android:name=".activity.TesteActivity"
            android:label="@string/title_activity_teste"
            android:theme="@style/Theme.MyTheme"
            android:parentActivityName=".activity.ResumoPedidoActivity">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".activity.ResumoPedidoActivity" />
</activity>

Adiciona o método finish() no final da sua chamada, assim:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == android.R.id.home) {
      Intent it = new Intent();
      it.putExtra(PRODUTO_SELECIONADO, (Serializable) pedidoItem);
      it.putExtra(CLIENTE_SELECIONADO, pedidoCabecalho);
      it.putExtra(SUBTOTAL, subTotalSt);
      setResult(2, it);
      NavUtils.navigateUpFromSameTask(this);
	  
	  finish();
    }
    return super.onOptionsItemSelected(item);
}

Mesmo assim não funcionou, ele vai para o onCreate quando volta para a activity pai.