diff -ur vorbis-tools-1.2.0.orig/ogg123/speex_format.c vorbis-tools-1.2.0/ogg123/speex_format.c --- vorbis-tools-1.2.0.orig/ogg123/speex_format.c 2008-03-03 07:37:26.000000000 +0200 +++ vorbis-tools-1.2.0/ogg123/speex_format.c 2008-04-14 16:47:22.000000000 +0300 @@ -475,7 +475,7 @@ cb->printf_error(callback_arg, ERROR, _("Cannot read header")); return NULL; } - if ((*header)->mode >= SPEEX_NB_MODES) { + if ((*header)->mode >= SPEEX_NB_MODES || (*header)->mode < 0) { cb->printf_error(callback_arg, ERROR, _("Mode number %d does not (any longer) exist in this version"), (*header)->mode);