diff -burN original/chan_zap.c pol_reversal/chan_zap.c --- original/chan_zap.c 2006-01-13 20:38:24.000000000 +1100 +++ pol_reversal/chan_zap.c 2006-01-13 20:56:24.000000000 +1100 @@ -4265,6 +4265,10 @@ (ast->_state == AST_STATE_RINGING))) { ast_log(LOG_DEBUG, "Answering on polarity switch!\n"); ast_setstate(p->owner, AST_STATE_UP); + if(p->hanguponpolarityswitch) { + gettimeofday(&p->polaritydelaytv, NULL); + } + break; } else ast_log(LOG_DEBUG, "Ignore switch to REVERSED Polarity on channel %d, state %d\n", p->channel, ast->_state); }