diff --git a/apps/app_queue.c b/apps/app_queue.c
index 68d883c102..60afb6d234 100755
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -1383,7 +1383,7 @@ static int queues_show(int fd, int argc, char **argv)
 			pos = 1;
 			ast_cli(fd, "   Callers: \n");
 			for (qe = q->head; qe; qe = qe->next) 
-				ast_cli(fd, "      %d. %s (wait: %d:%02.2d)\n", pos++, qe->chan->name,
+				ast_cli(fd, "      %d. %s (wait: %d:%2.2d)\n", pos++, qe->chan->name,
 								(now - qe->start) / 60, (now - qe->start) % 60);
 		} else
 			ast_cli(fd, "   No Callers\n");
@@ -1441,7 +1441,7 @@ static int manager_queues_status( struct mansession *s, struct message *m )
 				"Wait: %ld\r\n"
 				"%s"
 				"\r\n", 
-					q->name, pos++, qe->chan->name, (qe->chan->callerid ? qe->chan->callerid : ""), now - qe->start), idText;
+					q->name, pos++, qe->chan->name, (qe->chan->callerid ? qe->chan->callerid : ""), (long)(now - qe->start), idText);
 		ast_mutex_unlock(&q->lock);
 		q = q->next;
 	}
diff --git a/include/asterisk/cli.h b/include/asterisk/cli.h
index bb41ad8f3e..6dfc621446 100755
--- a/include/asterisk/cli.h
+++ b/include/asterisk/cli.h
@@ -20,7 +20,8 @@ extern "C" {
 
 #include <stdarg.h>
 
-extern void ast_cli(int fd, char *fmt, ...);
+extern void ast_cli(int fd, char *fmt, ...)
+	__attribute__ ((format (printf, 2, 3)));
 
 #define RESULT_SUCCESS		0
 #define RESULT_SHOWUSAGE	1
diff --git a/pbx.c b/pbx.c
index 5a99f5c189..5ad920948f 100755
--- a/pbx.c
+++ b/pbx.c
@@ -1134,7 +1134,7 @@ static int pbx_extension_helper(struct ast_channel *c, char *context, char *exte
 			ast_mutex_unlock(&conlock);
 			if (app) {
 				if (c->context != context)
-					strncpy(c->context, context, sizeof(c->context-1));
+					strncpy(c->context, context, sizeof(c->context)-1);
 				if (c->exten != exten)
 					strncpy(c->exten, exten, sizeof(c->exten)-1);
 				c->priority = priority;
@@ -2512,7 +2512,7 @@ static int handle_show_dialplan(int fd, int argc, char *argv[])
 
 	/* try to lock contexts */
 	if (ast_lock_contexts()) {
-		ast_cli(LOG_WARNING, "Failed to lock contexts list\n");
+		ast_log(LOG_WARNING, "Failed to lock contexts list\n");
 		return RESULT_FAILURE;
 	}
 
@@ -3798,12 +3798,16 @@ int ast_pbx_outgoing_exten(char *type, int format, void *data, int timeout, char
 				res = 0;
 				if (option_verbose > 3)
 					ast_verbose(VERBOSE_PREFIX_4 "Channel %s was answered.\n", chan->name);
-				if (context && strlen(context))
+				if (context && *context)
 					strncpy(chan->context, context, sizeof(chan->context) - 1);
-				if (exten && strlen(exten))
+				if (exten && *exten)
 					strncpy(chan->exten, exten, sizeof(chan->exten) - 1);
-				if (callerid && strlen(callerid))
-					strncpy(chan->callerid, callerid, sizeof(chan->callerid) - 1);
+				if (callerid && *callerid) {
+					/* XXX call ast_set_callerid? */
+					if (chan->callerid)
+						free(chan->callerid);
+					chan->callerid = strdup(callerid);
+				}
 				if (priority > 0)
 					chan->priority = priority;
 				if (sync > 1) {
diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c
index c6c6190fbf..29a2039df9 100755
--- a/pbx/pbx_config.c
+++ b/pbx/pbx_config.c
@@ -1334,7 +1334,7 @@ static int handle_context_remove_ignorepat(int fd, int argc, char *argv[])
 				break;
 
 			default:
-				ast_cli(fd, "Failed to remove ignore pattern '%s' from '%s' context\n");
+				ast_cli(fd, "Failed to remove ignore pattern '%s' from '%s' context\n", argv[2], argv[4]);
 				break;
 		}
 		return RESULT_FAILURE;
diff --git a/res/res_monitor.c b/res/res_monitor.c
index 618c187019..38f737bc6d 100755
--- a/res/res_monitor.c
+++ b/res/res_monitor.c
@@ -2,6 +2,8 @@
 #include <stdlib.h>
 #include <errno.h>
 #include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
 
 #include <asterisk/lock.h>
 #include <asterisk/channel.h>
diff --git a/res/res_parking.c b/res/res_parking.c
index 828be881b1..ada9723fe5 100755
--- a/res/res_parking.c
+++ b/res/res_parking.c
@@ -582,7 +582,7 @@ static int handle_parkedcalls(int fd, int argc, char *argv[])
 
 	cur=parkinglot;
 	while(cur) {
-		ast_cli(fd, "%4d %25s (%-15s %-12s %-4d) %6ds\n"
+		ast_cli(fd, "%4d %25s (%-15s %-12s %-4d) %6lds\n"
 			,cur->parkingnum, cur->chan->name, cur->context, cur->exten
 			,cur->priority, cur->start.tv_sec + (cur->parkingtime/1000) - time(NULL));