diff --git a/channels/chan_brcm.c b/channels/chan_brcm.c
index 315832d79e1a7f4aa139a96f3dc6036e37b059d9..44973c3f80d37533b7b0e6c3f44a62e32ed732cb 100644
--- a/channels/chan_brcm.c
+++ b/channels/chan_brcm.c
@@ -1238,7 +1238,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);
 
@@ -4722,6 +4722,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);
 	}