Android - onBackPressed () não está funcionando

Eu tenho um aplicativo criado no Android 2.1 e quero substituir o botão Voltar.

Eu segui o exemplo aqui:

http://android-developers.blogspot.com/2009_12_01_archive.html

E meu código é o seguinte:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)  {
        if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5
                && keyCode == KeyEvent.KEYCODE_BACK
                && event.getRepeatCount() == 0) {
            Log.d("CDA", "onKeyDown Called");
            onBackPressed();
        }

        return true;
    }

    @Override
    public void onBackPressed() {
    Log.d("CDA", "onBackPressed Called");
        Intent setIntent = new Intent(Intent.ACTION_MAIN);
        setIntent.addCategory(Intent.CATEGORY_HOME);
        setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(setIntent); 

        return;
    }   

Funciona em dispositivos pré 2.x, mas não funciona em um Hero com 2.1 update-1 e um Nexus One com 2.2.

Falta alguma coisa no exemplo? Ou alguém pode apontar por que não está funcionando?

Eu nem pressiono o botão no logcat.

questionAnswers(3)

yourAnswerToTheQuestion