diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index dbf7ca0dafaad183f86a24b569b368a4ef686973..705ddf5f92837c981bde2bc816ebefd015fe630f 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -4268,6 +4268,9 @@ static struct ast_frame *zt_handle_event(struct ast_channel *ast)
                                      (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);
+					}
                                 } else
                                         ast_log(LOG_DEBUG, "Ignore switch to REVERSED Polarity on channel %d, state %d\n", p->channel, ast->_state);
 			}