diff --git a/apps/app_dumpchan.c b/apps/app_dumpchan.c
index 5124cc2c4263227d55814170789c4233d02c10bb..b0dbb01ef633addceb29064f409a09b0c9ed4e0e 100644
--- a/apps/app_dumpchan.c
+++ b/apps/app_dumpchan.c
@@ -62,8 +62,9 @@ static int ast_serialize_showchan(struct ast_channel *c, char *buf, size_t size)
 	struct timeval now;
 	long elapsed_seconds=0;
 	int hour=0, min=0, sec=0;
-	char cgrp[256];
-	char pgrp[256];
+	char cgrp[BUFSIZ/2];
+	char pgrp[BUFSIZ/2];
+	char formatbuf[BUFSIZ/2];
 	
 	now = ast_tvnow();
 	memset(buf,0,size);
@@ -86,9 +87,9 @@ static int ast_serialize_showchan(struct ast_channel *c, char *buf, size_t size)
 			 "DNIDDigits=         %s\n"
 			 "State=              %s (%d)\n"
 			 "Rings=              %d\n"
-			 "NativeFormat=       %d\n"
-			 "WriteFormat=        %d\n"
-			 "ReadFormat=         %d\n"
+			 "NativeFormat=       %d %s\n"
+			 "WriteFormat=        %d %s\n"
+			 "ReadFormat=         %d %s\n"
 			 "1stFileDescriptor=  %d\n"
 			 "Framesin=           %d %s\n"
 			 "Framesout=          %d %s\n"
@@ -112,8 +113,11 @@ static int ast_serialize_showchan(struct ast_channel *c, char *buf, size_t size)
 			 c->_state,
 			 c->rings,
 			 c->nativeformats,
+			 ast_getformatname_multiple(formatbuf, sizeof(formatbuf), c->nativeformats),
 			 c->writeformat,
+			 ast_getformatname_multiple(formatbuf, sizeof(formatbuf), c->writeformat),
 			 c->readformat,
+			 ast_getformatname_multiple(formatbuf, sizeof(formatbuf), c->readformat),
 			 c->fds[0], c->fin & ~DEBUGCHAN_FLAG, (c->fin & DEBUGCHAN_FLAG) ? " (DEBUGGED)" : "",
 			 c->fout & ~DEBUGCHAN_FLAG, (c->fout & DEBUGCHAN_FLAG) ? " (DEBUGGED)" : "", (long)c->whentohangup,
 			 hour,