diff --git a/codecs/codec_a_mu.c b/codecs/codec_a_mu.c
index 47644a735a39b1fd47f16a336562e2caebc16577..c21b26c95d94585b4e1a84b4c18be56488f39760 100644
--- a/codecs/codec_a_mu.c
+++ b/codecs/codec_a_mu.c
@@ -41,6 +41,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/channel.h"
 #include "asterisk/alaw.h"
 #include "asterisk/ulaw.h"
+#include "asterisk/utils.h"
 
 #define BUFFER_SIZE   8096	/* size for the translation buffers */
 
@@ -83,26 +84,26 @@ struct ulaw_encoder_pvt
 static struct ast_translator_pvt *alawtoulaw_new(void)
 {
 	struct ulaw_encoder_pvt *tmp;
-	tmp = malloc(sizeof(struct ulaw_encoder_pvt));
-	if (tmp) {
-		memset(tmp, 0, sizeof(*tmp));
+	
+	if ((tmp = ast_calloc(1, sizeof(*tmp)))) {
 		tmp->tail = 0;
 		localusecnt++;
 		ast_update_use_count();
 	}
+
 	return (struct ast_translator_pvt *)tmp;
 }
 
 static struct ast_translator_pvt *ulawtoalaw_new(void)
 {
 	struct alaw_encoder_pvt *tmp;
-	tmp = malloc(sizeof(struct alaw_encoder_pvt));
-	if (tmp) {
-		memset(tmp, 0, sizeof(*tmp));
+	
+	if ((tmp = ast_calloc(1, sizeof(*tmp)))) {
 		localusecnt++;
 		ast_update_use_count();
 		tmp->tail = 0;
 	}
+
 	return (struct ast_translator_pvt *)tmp;
 }
 
diff --git a/codecs/codec_adpcm.c b/codecs/codec_adpcm.c
index e6275507499ca1d7a02d136c5172e6213d4fd995..19fd33c3192f2faa12682aeb0b7d37f9abf7bf52 100644
--- a/codecs/codec_adpcm.c
+++ b/codecs/codec_adpcm.c
@@ -45,6 +45,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/options.h"
 #include "asterisk/translate.h"
 #include "asterisk/channel.h"
+#include "asterisk/utils.h"
 
 /* define NOT_BLI to use a faster but not bit-level identical version */
 /* #define NOT_BLI */
@@ -268,14 +269,14 @@ struct adpcm_decoder_pvt
 static struct ast_translator_pvt *adpcmtolin_new(void)
 {
 	struct adpcm_decoder_pvt *tmp;
-	tmp = malloc(sizeof(struct adpcm_decoder_pvt));
-	if (tmp) {
-		memset(tmp, 0, sizeof(*tmp));
+	
+	if ((tmp = ast_calloc(1, sizeof(*tmp)))) {
 		tmp->tail = 0;
 		plc_init(&tmp->plc);
 		localusecnt++;
 		ast_update_use_count();
 	}
+
 	return (struct ast_translator_pvt *)tmp;
 }
 
@@ -293,13 +294,13 @@ static struct ast_translator_pvt *adpcmtolin_new(void)
 static struct ast_translator_pvt *lintoadpcm_new(void)
 {
 	struct adpcm_encoder_pvt *tmp;
-	tmp = malloc(sizeof(struct adpcm_encoder_pvt));
-	if (tmp) {
-		memset(tmp, 0, sizeof(*tmp));
+	
+	if ((tmp = ast_calloc(1, sizeof(*tmp)))) {
 		localusecnt++;
 		ast_update_use_count();
 		tmp->tail = 0;
 	}
+
 	return (struct ast_translator_pvt *)tmp;
 }
 
diff --git a/codecs/codec_alaw.c b/codecs/codec_alaw.c
index 1c44d34348c28580d8da5daaf10ab2d22c4a8d9f..a56e42a022f220b9f13223297ad4327d5cfaf407 100644
--- a/codecs/codec_alaw.c
+++ b/codecs/codec_alaw.c
@@ -42,6 +42,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/translate.h"
 #include "asterisk/channel.h"
 #include "asterisk/alaw.h"
+#include "asterisk/utils.h"
 
 #define BUFFER_SIZE   8096	/* size for the translation buffers */
 
@@ -94,14 +95,14 @@ struct alaw_decoder_pvt
 static struct ast_translator_pvt *alawtolin_new(void)
 {
 	struct alaw_decoder_pvt *tmp;
-	tmp = malloc(sizeof(struct alaw_decoder_pvt));
-	if (tmp) {
-		memset(tmp, 0, sizeof(*tmp));
+	
+	if ((tmp = ast_calloc(1, sizeof(*tmp)))) {
 		tmp->tail = 0;
 		plc_init(&tmp->plc);
 		localusecnt++;
 		ast_update_use_count();
 	}
+
 	return (struct ast_translator_pvt *)tmp;
 }
 
@@ -119,13 +120,13 @@ static struct ast_translator_pvt *alawtolin_new(void)
 static struct ast_translator_pvt *lintoalaw_new(void)
 {
 	struct alaw_encoder_pvt *tmp;
-	tmp = malloc(sizeof(struct alaw_encoder_pvt));
-	if (tmp) {
-		memset(tmp, 0, sizeof(*tmp));
+
+	if ((tmp = ast_calloc(1, sizeof(*tmp)))) {
 		localusecnt++;
 		ast_update_use_count();
 		tmp->tail = 0;
 	}
+
 	return (struct ast_translator_pvt *)tmp;
 }
 
diff --git a/codecs/codec_g723_1.c b/codecs/codec_g723_1.c
index 67d9b51b0d47e83dbc348e64d9f0119a01e8ebee..fc508ff268dc6bd9064bc982ccd1be29c9d919a7 100644
--- a/codecs/codec_g723_1.c
+++ b/codecs/codec_g723_1.c
@@ -50,6 +50,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/module.h"
 #include "asterisk/logger.h"
 #include "asterisk/channel.h"
+#include "asterisk/utils.h"
 
 #ifdef ANNEX_B
 #include "g723.1b/typedef2.h"
@@ -113,9 +114,8 @@ struct g723_decoder_pvt {
 
 static struct ast_translator_pvt *g723tolin_new(void)
 {
-	struct g723_decoder_pvt *tmp;
-	tmp = malloc(sizeof(struct g723_decoder_pvt));
-	if (tmp) {
+	struct g723_decoder_pvt *tmp;	
+	if ((tmp = ast_malloc(sizeof(*tmp)))) {
 		Init_Decod(&tmp->dec);
 	    Init_Dec_Cng(&tmp->dec);
 		tmp->tail = 0;
@@ -157,9 +157,8 @@ static struct ast_frame *g723tolin_sample(void)
 
 static struct ast_translator_pvt *lintog723_new(void)
 {
-	struct g723_encoder_pvt *tmp;
-	tmp = malloc(sizeof(struct g723_encoder_pvt));
-	if (tmp) {
+	struct g723_encoder_pvt *tmp;	
+	if ((tmp = ast_malloc(sizeof(*tmp)))) {
 		Init_Coder(&tmp->cod);
 	    /* Init Comfort Noise Functions */
    		 if( UseVx ) {
diff --git a/codecs/codec_g726.c b/codecs/codec_g726.c
index 81ec1e1ac705352c1d9c874998f87e75f8cc7893..2a39e90a30400f92efe85787f315a0e800542bb3 100644
--- a/codecs/codec_g726.c
+++ b/codecs/codec_g726.c
@@ -45,6 +45,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/options.h"
 #include "asterisk/translate.h"
 #include "asterisk/channel.h"
+#include "asterisk/utils.h"
 
 #define WANT_ASM
 #include "log2comp.h"
@@ -734,11 +735,9 @@ struct g726_decoder_pvt
 static struct ast_translator_pvt *
 g726tolin_new (void)
 {
-  struct g726_decoder_pvt *tmp;
-  tmp = malloc (sizeof (struct g726_decoder_pvt));
-  if (tmp)
+  struct g726_decoder_pvt *tmp;  
+  if ((tmp = ast_calloc(1, sizeof(*tmp))))
     {
-	  memset(tmp, 0, sizeof(*tmp));
       tmp->tail = 0;
       plc_init(&tmp->plc);
       localusecnt++;
@@ -762,11 +761,9 @@ g726tolin_new (void)
 static struct ast_translator_pvt *
 lintog726_new (void)
 {
-  struct g726_encoder_pvt *tmp;
-  tmp = malloc (sizeof (struct g726_encoder_pvt));
-  if (tmp)
+  struct g726_encoder_pvt *tmp;  
+  if ((tmp = ast_calloc(1, sizeof(*tmp))))
     {
-	  memset(tmp, 0, sizeof(*tmp));
       localusecnt++;
       tmp->tail = 0;
 	  g726_init_state(&tmp->g726);
diff --git a/codecs/codec_gsm.c b/codecs/codec_gsm.c
index b8afd3bd733373a47331d2d2cedbfc7b9082500f..ee28e852d0b26d6e9b3605dda1b9be41ed3c4e11 100644
--- a/codecs/codec_gsm.c
+++ b/codecs/codec_gsm.c
@@ -44,6 +44,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/module.h"
 #include "asterisk/logger.h"
 #include "asterisk/channel.h"
+#include "asterisk/utils.h"
 
 #ifdef USE_EXTERNAL_GSM_LIB
 #include <gsm/gsm.h>
@@ -81,9 +82,8 @@ struct ast_translator_pvt {
 
 static struct ast_translator_pvt *gsm_new(void)
 {
-	struct gsm_coder_pvt *tmp;
-	tmp = malloc(sizeof(struct gsm_coder_pvt));
-	if (tmp) {
+	struct gsm_coder_pvt *tmp;	
+	if ((tmp = ast_malloc(sizeof(*tmp)))) {
 		if (!(tmp->gsm = gsm_create())) {
 			free(tmp);
 			tmp = NULL;
diff --git a/codecs/codec_ilbc.c b/codecs/codec_ilbc.c
index 3f415c8ddb24ed5220185bf770ded2c391819306..8c928fbcdf3ebf926dd0d0898e7d86879ddd34bc 100644
--- a/codecs/codec_ilbc.c
+++ b/codecs/codec_ilbc.c
@@ -41,6 +41,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/module.h"
 #include "asterisk/logger.h"
 #include "asterisk/channel.h"
+#include "asterisk/utils.h"
 
 #include "ilbc/iLBC_encode.h"
 #include "ilbc/iLBC_decode.h"
@@ -76,8 +77,7 @@ struct ast_translator_pvt {
 static struct ast_translator_pvt *lintoilbc_new(void)
 {
 	struct ilbc_coder_pvt *tmp;
-	tmp = malloc(sizeof(struct ilbc_coder_pvt));
-	if (tmp) {
+	if ((tmp = ast_malloc(sizeof(*tmp)))) {
 		/* Shut valgrind up */
 		memset(&tmp->enc, 0, sizeof(tmp->enc));
 		initEncode(&tmp->enc, ILBC_MS);
@@ -89,9 +89,8 @@ static struct ast_translator_pvt *lintoilbc_new(void)
 
 static struct ast_translator_pvt *ilbctolin_new(void)
 {
-	struct ilbc_coder_pvt *tmp;
-	tmp = malloc(sizeof(struct ilbc_coder_pvt));
-	if (tmp) {
+	struct ilbc_coder_pvt *tmp;	
+	if ((tmp = ast_malloc(sizeof(*tmp)))) {
 		/* Shut valgrind up */
 		memset(&tmp->dec, 0, sizeof(tmp->dec));
 		initDecode(&tmp->dec, ILBC_MS, USE_ILBC_ENHANCER);
diff --git a/codecs/codec_lpc10.c b/codecs/codec_lpc10.c
index 8eeecdef0ccdfb1c2e8fa64d68608167bed97a45..fe37383a76ec28b8e37e9c40ac8fca9b363f21fc 100644
--- a/codecs/codec_lpc10.c
+++ b/codecs/codec_lpc10.c
@@ -45,6 +45,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/module.h"
 #include "asterisk/logger.h"
 #include "asterisk/channel.h"
+#include "asterisk/utils.h"
 
 #include "lpc10/lpc10.h"
 
@@ -87,9 +88,8 @@ struct ast_translator_pvt {
 
 static struct ast_translator_pvt *lpc10_enc_new(void)
 {
-	struct lpc10_coder_pvt *tmp;
-	tmp = malloc(sizeof(struct lpc10_coder_pvt));
-	if (tmp) {
+	struct lpc10_coder_pvt *tmp;	
+	if ((tmp = ast_malloc(sizeof(*tmp)))) {
 		if (!(tmp->lpc10.enc = create_lpc10_encoder_state())) {
 			free(tmp);
 			tmp = NULL;
@@ -103,9 +103,8 @@ static struct ast_translator_pvt *lpc10_enc_new(void)
 
 static struct ast_translator_pvt *lpc10_dec_new(void)
 {
-	struct lpc10_coder_pvt *tmp;
-	tmp = malloc(sizeof(struct lpc10_coder_pvt));
-	if (tmp) {
+	struct lpc10_coder_pvt *tmp;	
+	if ((tmp = ast_malloc(sizeof(*tmp)))) {
 		if (!(tmp->lpc10.dec = create_lpc10_decoder_state())) {
 			free(tmp);
 			tmp = NULL;
diff --git a/codecs/codec_speex.c b/codecs/codec_speex.c
index 24a6704a9772a43071632529dd64594f15b7c3ef..7d7871e218e040aef42d550f14485e38e4e941c2 100644
--- a/codecs/codec_speex.c
+++ b/codecs/codec_speex.c
@@ -75,6 +75,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/options.h"
 #include "asterisk/logger.h"
 #include "asterisk/channel.h"
+#include "asterisk/utils.h"
 
 /* Sample frame data */
 #include "slin_speex_ex.h"
@@ -111,9 +112,8 @@ struct ast_translator_pvt {
 
 static struct ast_translator_pvt *lintospeex_new(void)
 {
-	struct speex_coder_pvt *tmp;
-	tmp = malloc(sizeof(struct speex_coder_pvt));
-	if (tmp) {
+	struct speex_coder_pvt *tmp;	
+	if ((tmp = ast_malloc(sizeof(*tmp)))) {
 		if (!(tmp->speex = speex_encoder_init(&speex_nb_mode))) {
 			free(tmp);
 			tmp = NULL;
@@ -158,9 +158,8 @@ static struct ast_translator_pvt *lintospeex_new(void)
 
 static struct ast_translator_pvt *speextolin_new(void)
 {
-	struct speex_coder_pvt *tmp;
-	tmp = malloc(sizeof(struct speex_coder_pvt));
-	if (tmp) {
+	struct speex_coder_pvt *tmp;	
+	if ((tmp = ast_malloc(sizeof(*tmp)))) {
 		if (!(tmp->speex = speex_decoder_init(&speex_nb_mode))) {
 			free(tmp);
 			tmp = NULL;
diff --git a/codecs/codec_ulaw.c b/codecs/codec_ulaw.c
index 236d07d936d677fdea8063ce706c1d38dab1144c..38332019c6d7554148ecde2884af7c677a67d067 100644
--- a/codecs/codec_ulaw.c
+++ b/codecs/codec_ulaw.c
@@ -42,6 +42,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/translate.h"
 #include "asterisk/channel.h"
 #include "asterisk/ulaw.h"
+#include "asterisk/utils.h"
 
 #define BUFFER_SIZE   8096	/* size for the translation buffers */
 
@@ -96,14 +97,14 @@ struct ulaw_decoder_pvt
 static struct ast_translator_pvt *ulawtolin_new(void)
 {
 	struct ulaw_decoder_pvt *tmp;
-	tmp = malloc(sizeof(struct ulaw_decoder_pvt));
-	if (tmp) {
-		memset(tmp, 0, sizeof(*tmp));
+
+	if ((tmp = ast_calloc(1, sizeof(*tmp)))) {
 		tmp->tail = 0;
 		plc_init(&tmp->plc);
 		localusecnt++;
 		ast_update_use_count();
 	}
+
 	return (struct ast_translator_pvt *)tmp;
 }
 
@@ -121,13 +122,13 @@ static struct ast_translator_pvt *ulawtolin_new(void)
 static struct ast_translator_pvt *lintoulaw_new(void)
 {
 	struct ulaw_encoder_pvt *tmp;
-	tmp = malloc(sizeof(struct ulaw_encoder_pvt));
-	if (tmp) {
-		memset(tmp, 0, sizeof(*tmp));
+	
+	if ((tmp = ast_calloc(1, sizeof(*tmp)))) {
 		localusecnt++;
 		ast_update_use_count();
 		tmp->tail = 0;
 	}
+
 	return (struct ast_translator_pvt *)tmp;
 }