diff --git a/channels/chan_brcm.c b/channels/chan_brcm.c
index da68bfe2e763cbd357aa42708ca48856f61571dc..7b2f7ae291ddd6295d4aeafc10765a19b0710376 100644
--- a/channels/chan_brcm.c
+++ b/channels/chan_brcm.c
@@ -1241,7 +1241,7 @@ static int brcm_answer(struct ast_channel *ast)
             if(sub->channel_state != CALLENDED)/*Dont change the channel state if call is terminated */
 		sub->channel_state = INCALL;
 	}
-
+	endpt_signal(pvt->line_id, "answer", "on", NULL);
 	brcm_send_ubus_event("RINGING_OFF",pvt->line_id);
 	endpt_signal(pvt->line_id, "ringback", "off", NULL);
 
@@ -4725,6 +4725,7 @@ static int brcm_close_connection(struct brcm_subchannel *sub)
 			endpt_connection(p->line_id, sub->call_id, "release");
 		}
 		sub->connection_init = 0;
+		sub->codec = -1;
 		ast_debug(1, "Virtual Asterisk connection %d/%d destroyed\n", p->line_id, sub->connection_id);
 	}