Index: apps/app_voicemail.c =================================================================== --- apps/app_voicemail.c (revision 294347) +++ apps/app_voicemail.c (working copy) @@ -2463,6 +2463,7 @@ ast_log(LOG_WARNING, "The code expects the old messages to be checked first, fix the code.\n"); } if (vm_allocate_dh(vms, vmu, box == 0 ? vms->vmArrayIndex + vms->oldmessages : vms->lastmsg)) { + ast_mutex_unlock(&vms->lock); return -1; } @@ -7415,7 +7416,8 @@ last_msg = last_message_index(vmu, vms->curdir); ast_unlock_path(vms->curdir); - if (last_msg < 0) { + if (last_msg < -1) { + /* error from last message index */ return last_msg; } else if (vms->lastmsg != last_msg) { ast_log(LOG_NOTICE, "Mailbox: %s, expected %d but found %d message(s) in box with max threshold of %d.\n", vms->curdir, last_msg + 1, vms->lastmsg + 1, vmu->maxmsg);