diff --git a/agi/eagi-sphinx-test.c b/agi/eagi-sphinx-test.c
index ae80654e858f6e9ebc9a14731e27e02bb219f2ed..ed0239435bfce769b641cf10475c5f80f8105d5e 100755
--- a/agi/eagi-sphinx-test.c
+++ b/agi/eagi-sphinx-test.c
@@ -1,7 +1,9 @@
 /*
  * Extended AGI test application
  *
- * Copyright (C) 2003, Digium, Inc.
+ * This code is released into public domain
+ * without any warranty of any kind.
+ *
  */
 
 #include <stdio.h>
diff --git a/agi/eagi-test.c b/agi/eagi-test.c
index 7d1e95e929e46f6a35971b99fb3c6e9a5117e2e1..aa498cb88aafdf0663f09b34a8570938f056a9cd 100755
--- a/agi/eagi-test.c
+++ b/agi/eagi-test.c
@@ -1,7 +1,8 @@
 /*
  * Extended AGI test application
  *
- * Copyright (C) 2003, Digium, Inc.
+ * This code is released into the public domain
+ * with no warranty of any kind
  */
 
 #include <stdio.h>
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 23cc2fb5b5b2143d54f1892230fdebbffbe69d0c..9c6d13458849c04bd3519f6b7c4851378b388890 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -2375,6 +2375,7 @@ static struct ast_frame *zt_handle_event(struct ast_channel *ast)
 			break;
 		case ZT_EVENT_ALARM:
 			p->inalarm = 1;
+			ast_log(LOG_WARNING, "Detected alarm on channel %d\n", p->channel);
 			/* fall through intentionally */
 		case ZT_EVENT_ONHOOK:
 			if (p->radio)
@@ -4075,9 +4076,11 @@ static int handle_init_event(struct zt_pvt *i, int event)
 		break;
 	case ZT_EVENT_NOALARM:
 		i->inalarm = 0;
+		ast_log(LOG_NOTICE, "Alarm cleared on channel %d\n", i->channel);
 		break;
 	case ZT_EVENT_ALARM:
 		i->inalarm = 1;
+		ast_log(LOG_WARNING, "Alarm detected on channel %d\n", i->channel);
 		/* fall thru intentionally */
 	case ZT_EVENT_ONHOOK:
 		/* Back on hook.  Hang up. */
@@ -4106,6 +4109,10 @@ static int handle_init_event(struct zt_pvt *i, int event)
 			res = tone_zone_play_tone(i->subs[SUB_REAL].zfd, -1);
 			zt_set_hook(i->subs[SUB_REAL].zfd, ZT_ONHOOK);
 			break;
+		case SIG_PRI:
+			zt_disable_ec(i);
+			res = tone_zone_play_tone(i->subs[SUB_REAL].zfd, -1);
+			break;
 		default:
 			ast_log(LOG_WARNING, "Don't know how to handle on hook with signalling %s on channel %d\n", sig2str(i->sig), i->channel);
 			res = tone_zone_play_tone(i->subs[SUB_REAL].zfd, -1);
diff --git a/cli.c b/cli.c
index ef1810d2d2e3b1060c4f820498327537f53e5c77..aaed2d3051e2ed0b32fe134255ebcf40e6d525ef 100755
--- a/cli.c
+++ b/cli.c
@@ -345,6 +345,7 @@ static int handle_showchan(int fd, int argc, char *argv[])
 	"1st File Descriptor: %d\n"
 	"      Frames in: %d\n"
 	"     Frames out: %d\n"
+	" Time to Hangup: %d\n"
 	" --   PBX   --\n"
 	"        Context: %s\n"
 	"      Extension: %s\n"
@@ -356,7 +357,8 @@ static int handle_showchan(int fd, int argc, char *argv[])
 	c->name, c->type, 
 	(c->callerid ? c->callerid : "(N/A)"),
 	(c->dnid ? c->dnid : "(N/A)" ), ast_state2str(c->_state), c->_state, c->rings, c->nativeformats, c->writeformat, c->readformat,
-	c->fds[0], c->fin, c->fout, c->context, c->exten, c->priority, ( c->appl ? c->appl : "(N/A)" ),
+	c->fds[0], c->fin, c->fout, c->whentohangup,
+	c->context, c->exten, c->priority, ( c->appl ? c->appl : "(N/A)" ),
 	( c-> data ? (strlen(c->data) ? c->data : "(Empty)") : "(None)"),
 	c->stack, (c->blocking ? c->blockproc : "(Not Blocking)"));