diff --git a/callerid.c b/callerid.c
index 0a0883eb32b8dbff491de220456166861a11f3a3..3766f4b0bd4c59c016d0089b347f8ecdbbd2a887 100755
--- a/callerid.c
+++ b/callerid.c
@@ -110,8 +110,8 @@ struct callerid_state *callerid_new(void)
 {
 	struct callerid_state *cid;
 	cid = malloc(sizeof(struct callerid_state));
-	memset(cid, 0, sizeof(struct callerid_state));
 	if (cid) {
+		memset(cid, 0, sizeof(struct callerid_state));
 		cid->fskd.spb = 7;		/* 1200 baud */
 		cid->fskd.hdlc = 0;		/* Async */
 		cid->fskd.nbit = 8;		/* 8 bits */
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 723c466b13a79e062e9e887c627be2823b69d8b7..75bead1c116f52c20ecde34f0801aa1904ff37c4 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -4359,6 +4359,8 @@ static void *ss_thread(void *data)
 			} else
 				ast_log(LOG_WARNING, "Unable to get caller ID space\n");
 		}
+		else
+			cs = NULL;
 		if (name && number) {
 			snprintf(cid, sizeof(cid), "\"%s\" <%s>", name, number);
 		} else if (name) {
@@ -4368,6 +4370,8 @@ static void *ss_thread(void *data)
 		} else {
 			strcpy(cid, "");
 		}
+		if (cs)
+			callerid_free(cs);
 		if (strlen(cid)) {
 			chan->callerid = strdup(cid);
 			chan->ani = strdup(cid);
diff --git a/frame.c b/frame.c
index 36ac0e1da0ec196b760e2b8441fc3671251fa083..0ff9d2a1e08bb97699a7f352e23b71c17ebfac30 100755
--- a/frame.c
+++ b/frame.c
@@ -455,8 +455,7 @@ static int show_codecs(int fd, int argc, char *argv[])
 		return RESULT_SHOWUSAGE;
 
 	if (getenv("I_AM_NOT_AN_IDIOT") == NULL)
-		ast_cli(fd, "Disclaimer: this command is for informational purposes
-only.\n\tIt does not indicate anything about your configuration.\n");
+		ast_cli(fd, "Disclaimer: this command is for informational purposes only.\n\tIt does not indicate anything about your configuration.\n");
 
 	if ((argc == 2) || (!strcasecmp(argv[1],"audio"))) {
 		found = 1;