diff --git a/channels/chan_brcm.c b/channels/chan_brcm.c
index 19eecd8476504ec5d19433a606d8655aa78c7273..8b48af415750c8414cd7f9b3dfc447523b11ad37 100644
--- a/channels/chan_brcm.c
+++ b/channels/chan_brcm.c
@@ -574,11 +574,8 @@ static int brcm_indicate(struct ast_channel *ast, int condition, const void *dat
 	//ast_mutex_lock(&sub->parent->lock);
 	switch(condition) {
 	case AST_CONTROL_UNHOLD:
-		//Asterisk (adaptive) jitter buffer causes one way audio
-		//This is a workaround until jitter buffer is handled by DSP.
 		res = 0; //We still want asterisk core to play tone
 		brcm_stop_dialtone(sub->parent);
-		ast_jb_destroy(ast);
 
 		// Play a beep when unholding.
 		ast_channel_lock(ast);
@@ -599,7 +596,6 @@ static int brcm_indicate(struct ast_channel *ast, int condition, const void *dat
 	case AST_CONTROL_UPDATE_RTP_PEER:
 	case AST_CONTROL_SRCUPDATE:
 	case AST_CONTROL_SRCCHANGE:
-		ast_jb_destroy(ast);
 		break;
 	case AST_CONTROL_RINGING:
 		brcm_subchannel_set_state(sub, RINGBACK);
@@ -743,10 +739,6 @@ static int brcm_finish_transfer(struct ast_channel *owner, struct brcm_subchanne
 			//Do nothing. Let calls be up as they were before R4 was attempted (first call on hold, second call active)
 			ast_log(LOG_NOTICE, "Remote transfer failed\n");
 			brcm_subchannel_set_state(p, INCALL);
-
-			//Asterisk jitter buffer causes one way audio when going from unhold.
-			//This is a workaround until jitter buffer is handled by DSP.
-			ast_jb_destroy(owner);
 		}
 
 	} else {
@@ -1721,11 +1713,6 @@ void handle_hookflash(struct brcm_subchannel *sub, struct brcm_subchannel *sub_p
 			/* Pick up old */
 			if (peer_owner) {
 				brcm_unmute_connection(sub_peer);
-
-				//Asterisk jitter buffer causes one way audio when going from unhold.
-				//This is a workaround until jitter buffer is handled by DSP.
-				ast_jb_destroy(peer_owner);
-
 				ast_queue_unhold(peer_owner);
 				brcm_subchannel_set_state(sub_peer, INCALL);
 			}
@@ -1747,11 +1734,6 @@ void handle_hookflash(struct brcm_subchannel *sub, struct brcm_subchannel *sub_p
 			/* Pick up old */
 			if (peer_owner) {
 				brcm_unmute_connection(sub_peer);
-
-				//Asterisk jitter buffer causes one way audio when going from unhold.
-				//This is a workaround until jitter buffer is handled by DSP.
-				ast_jb_destroy(peer_owner);
-
 				ast_queue_unhold(peer_owner);
 				brcm_subchannel_set_state(sub_peer, INCALL);
 			}
@@ -1824,11 +1806,6 @@ void handle_hookflash(struct brcm_subchannel *sub, struct brcm_subchannel *sub_p
 					/* Unhold inactive subchannel */
 					if (peer_owner) {
 						brcm_unmute_connection(sub_peer);
-
-						//Asterisk jitter buffer causes one way audio when going from unhold.
-						//This is a workaround until jitter buffer is handled by DSP.
-						ast_jb_destroy(peer_owner);
-
 						ast_queue_unhold(peer_owner);
 						brcm_subchannel_set_state(sub_peer, INCALL);
 					}
@@ -1872,11 +1849,6 @@ void handle_hookflash(struct brcm_subchannel *sub, struct brcm_subchannel *sub_p
 					/* Unhold inactive subchannel */
 					if (peer_owner) {
 						brcm_unmute_connection(sub_peer);
-
-						//Asterisk jitter buffer causes one way audio when going from unhold.
-						//This is a workaround until jitter buffer is handled by DSP.
-						ast_jb_destroy(peer_owner);
-
 						ast_queue_unhold(peer_owner);
 						brcm_subchannel_set_state(sub_peer, INCALL);
 					}
@@ -2103,14 +2075,6 @@ void send_outgoing_dtmf(struct brcm_subchannel *sub, struct ast_channel *owner,
 
 	if (owner) {
 		if (!drop_frame && (ast_channel_state(owner) == AST_STATE_UP || ast_channel_state(owner) == AST_STATE_RING)) {
-			if (fr.frametype == AST_FRAME_DTMF_BEGIN || fr.frametype == AST_FRAME_DTMF_END) {
-				//Asterisk jitter buffer causes one way audio when sending DTMF
-				//This is a workaround until jitter buffer is handled by DSP
-				ast_channel_lock(owner);
-				ast_jb_destroy(owner);
-				ast_channel_unlock(owner);
-			}
-
 			//if (fr.frametype == AST_FRAME_DTMF_BEGIN && fr.len > 0) {
 			//	/* BEGIN frames doesn't have duration in Asterisk, but they do in
 			//		   the broadcom world. Since brcm by default sends the begin with
@@ -2269,13 +2233,6 @@ static void audio_packet_handler(pe_packet_t *p) {
 	if (owner) {
 		if (!drop_frame && (ast_channel_state(owner) == AST_STATE_UP || ast_channel_state(owner) == AST_STATE_RING)) {
 			struct ast_frame *cfr = NULL;
-			/* if (fr.frametype == AST_FRAME_DTMF_BEGIN || fr.frametype == AST_FRAME_DTMF_END) { */
-			/* 	//Asterisk jitter buffer causes one way audio when sending DTMF */
-			/* 	//This is a workaround until jitter buffer is handled by DSP */
-			/* 	ast_channel_lock(owner); */
-			/* 	ast_jb_destroy(owner); */
-			/* 	ast_channel_unlock(owner); */
-			/* } */
 			ast_queue_frame(owner, &fr);
 			if (cfr) {
 				ast_queue_frame(owner, cfr);
@@ -2400,10 +2357,6 @@ static void *brcm_process_event(struct endpt_event *ev) {
 					ast_debug(3, "Error deleting timer\n");
 				sub_peer->onhold_hangup_timer_id = -1;
 
-				//Asterisk jitter buffer causes one way audio when going from unhold.
-				//This is a workaround until jitter buffer is handled by DSP.
-				ast_jb_destroy(peer_owner);
-
 				brcm_subchannel_set_state(sub, CALLENDED);
 				brcm_subchannel_set_state(sub_peer, INCALL);
 				ast_queue_control(peer_owner, AST_CONTROL_ANSWER);