android mediaplayer loops forever en ICS

Quiero reproducir un sonido de notificación y mi problema es que el sonido se repite para siempre, cuando debería sonar solo una vez.

He intentado de dos maneras:

notification.sound = Uri.parse("content://media/internal/audio/media/38");

y

mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_NOTIFICATION);
mMediaPlayer.setDataSource(this, Uri.parse("content://media/internal/audio/media/38"));
mMediaPlayer.setLooping(false);
mMediaPlayer.prepare();
mMediaPlayer.setOnPreparedListener(new OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {
        Log.v(Utils.TAG, "onprepared");
        mp.start();
    }
});

mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
    @Override
    public void onCompletion(MediaPlayer mp) {
        Log.v(Utils.TAG, "end, we should release");
        mp.stop();
        mp.release();
    }
});

En el segundo caso, nunca veo la traza "fin, deberíamos liberar", el audio se reproduce una y otra y otra vez.

¿Alguna idea?

Muchas gracias

ACTUALIZAR:

He probado dos dispositivos y:

Se enrolla para siempre en un Galaxy Nexus con ICS 4.0.4Funciona bien en un HTC Hero 2.2.1

Respuestas a la pregunta(2)

Su respuesta a la pregunta