I was attempted to train the HMM using MPE criteria. I encountered the following terrible problem to some input signals, as follow: Processing Data: c0501.mfc T=799, pr/fr=-18.177995 [+num] Processing Data: c0501.mfc ERROR [+5105] AllocBlock: Cannot allocate block data of 20000000 bytes FATAL ERROR - Terminating program HMMIRest I have investigated the source code. The error is given when runing AttachMPEInfo() function in 'HArc.c'. In this function, there is a memory allocation clause: for(a=aInfo->start;a;a=a->foll){ ...... a->mpe = New(aInfo->mem, sizeof(MPEStruct)); } If the number of arcs is too large, it will consume all memory. In my application, ERROR [+5105] is shown after above 'New(aInfo->mem, sizeof(MPEStruct))' is called 1,058,400 times.