diff -uNr asterisk-1.6.1.0/apps/app_voicemail.c asterisk-1.6.1.0-new/apps/app_voicemail.c --- asterisk-1.6.1.0/apps/app_voicemail.c 2009-04-16 14:05:35.000000000 -0700 +++ asterisk-1.6.1.0-new/apps/app_voicemail.c 2009-05-07 21:12:45.000000000 -0700 @@ -8163,7 +8163,6 @@ { int cmd = 0; int duration = 0; - int tries = 0; char newpassword[80] = ""; char newpassword2[80] = ""; char prefile[PATH_MAX] = ""; @@ -8210,8 +8209,8 @@ ast_log(AST_LOG_NOTICE, "Password mismatch for user %s (%s != %s)\n", vms->username, newpassword, newpassword2); cmd = ast_play_and_wait(chan, vm_mismatch); } - if (++tries == 3) - return -1; + if (cmd == '*') + return '*'; } if (pwdchange & PWDCHANGE_INTERNAL) vm_change_password(vmu, newpassword); @@ -8981,6 +8980,10 @@ /* Timeout */ res = 0; goto out; + } else if (cmd == '*') { + /* User Aborted */ + res = 0; + goto out; } else if (cmd < 0) { /* Hangup */ res = -1;