diff --git a/asterisk.c b/asterisk.c
index 91db7d9a5b06144b1bf46a6fce73f00e606ed681..00a1b509a05f2a2196b9c94c175ed6076e320591 100755
--- a/asterisk.c
+++ b/asterisk.c
@@ -153,9 +153,9 @@ static int restartnow = 0;
 static pthread_t consolethread = AST_PTHREADT_NULL;
 
 struct file_version {
-	const char *file;
-	const char *version;
 	AST_LIST_ENTRY(file_version) list;
+	const char *file;
+	char *version;
 };
 
 static AST_LIST_HEAD_STATIC(file_versions, file_version);
@@ -163,13 +163,20 @@ static AST_LIST_HEAD_STATIC(file_versions, file_version);
 void ast_register_file_version(const char *file, const char *version)
 {
 	struct file_version *new;
+	char *work;
+	size_t version_length;
 
-	new = calloc(1, sizeof(*new));
+	work = ast_strdupa(version);
+	work = ast_strip(ast_strip_quoted(work, "$", "$"));
+	version_length = strlen(work) + 1;
+
+	new = calloc(1, sizeof(*new) + version_length);
 	if (!new)
 		return;
 
 	new->file = file;
-	new->version = version;
+	new->version = (char *) new + sizeof(*new);
+	memcpy(new->version, work, version_length);
 	AST_LIST_LOCK(&file_versions);
 	AST_LIST_INSERT_HEAD(&file_versions, new, list);
 	AST_LIST_UNLOCK(&file_versions);
@@ -188,6 +195,8 @@ void ast_unregister_file_version(const char *file)
 	}
 	AST_LIST_TRAVERSE_SAFE_END;
 	AST_LIST_UNLOCK(&file_versions);
+	if (find)
+		free(find);
 }
 
 static char show_version_files_help[] = 
@@ -197,14 +206,42 @@ static char show_version_files_help[] =
 
 static int handle_show_version_files(int fd, int argc, char *argv[])
 {
+#define FORMAT "%-25.25s %-20.20s\n"
 	struct file_version *iterator;
+	regex_t regexbuf;
+	int havepattern = 0;
+
+	switch (argc) {
+	case 5:
+		if (!strcasecmp(argv[3], "like")) {
+			if (regcomp(&regexbuf, argv[4], REG_EXTENDED | REG_NOSUB))
+				return RESULT_SHOWUSAGE;
+			havepattern = 1;
+		} else
+			return RESULT_SHOWUSAGE;
+		break;
+	case 3:
+		break;
+	default:
+		return RESULT_SHOWUSAGE;
+	}
 
+	ast_cli(fd, FORMAT, "File", "Revision");
+	ast_cli(fd, FORMAT, "----", "--------");
 	AST_LIST_LOCK(&file_versions);
 	AST_LIST_TRAVERSE(&file_versions, iterator, list) {
-		ast_cli(fd, "%-25.25s %-20.20s\n", iterator->file, iterator->version);
+		if (havepattern && regexec(&regexbuf, iterator->file, 0, NULL, 0))
+			continue;
+
+		ast_cli(fd, FORMAT, iterator->file, iterator->version);
 	}
 	AST_LIST_UNLOCK(&file_versions);
+
+	if (havepattern)
+		regfree(&regexbuf);
+
 	return RESULT_SUCCESS;
+#undef FORMAT
 }
 
 static char *complete_show_version_files(char *line, char *word, int pos, int state)
diff --git a/cdr/cdr_csv.c b/cdr/cdr_csv.c
index aa95fa1a0fef0e4c8896ee2244c7474725f10002..ec995a675b3ad587476bd2bf5b245b9c780a9f21 100755
--- a/cdr/cdr_csv.c
+++ b/cdr/cdr_csv.c
@@ -15,12 +15,16 @@
  */
 
 #include <sys/types.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/channel.h"
 #include "asterisk/cdr.h"
 #include "asterisk/module.h"
 #include "asterisk/logger.h"
 #include "asterisk/utils.h"
-#include "asterisk.h"
 
 #define CSV_LOG_DIR "/cdr-csv"
 #define CSV_MASTER  "/Master.csv"
diff --git a/cdr/cdr_custom.c b/cdr/cdr_custom.c
index cbb6d970b317446531aa4c72b1b7b04f462c3a6f..e524d71c3e64b05cb0ed49f19bd96e7c206c42bf 100755
--- a/cdr/cdr_custom.c
+++ b/cdr/cdr_custom.c
@@ -15,6 +15,11 @@
  */
 
 #include <sys/types.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/channel.h"
 #include "asterisk/cdr.h"
 #include "asterisk/module.h"
@@ -22,7 +27,6 @@
 #include "asterisk/pbx.h"
 #include "asterisk/logger.h"
 #include "asterisk/utils.h"
-#include "asterisk.h"
 
 #define CUSTOM_LOG_DIR "/cdr_custom"
 
diff --git a/cdr/cdr_manager.c b/cdr/cdr_manager.c
index 556358287197c5bf4e8ff36d8d12d93a57c474de..c529d05e104fe50ea7fc6e49c92653e54d093076 100755
--- a/cdr/cdr_manager.c
+++ b/cdr/cdr_manager.c
@@ -9,6 +9,14 @@
  */
 
 #include <sys/types.h>
+#include <strings.h>
+#include <unistd.h>
+#include <time.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/channel.h"
 #include "asterisk/cdr.h"
 #include "asterisk/module.h"
@@ -16,10 +24,6 @@
 #include "asterisk/utils.h"
 #include "asterisk/manager.h"
 #include "asterisk/config.h"
-#include "asterisk.h"
-#include <strings.h>
-#include <unistd.h>
-#include <time.h>
 
 #define DATE_FORMAT 	"%Y-%m-%d %T"
 #define CONF_FILE	"cdr_manager.conf"
diff --git a/cdr/cdr_odbc.c b/cdr/cdr_odbc.c
index b654f6bd6bd294731655f449c920af02b5641ec2..feed26a1864253126074a0550e74830f96bbeedf 100755
--- a/cdr/cdr_odbc.c
+++ b/cdr/cdr_odbc.c
@@ -12,14 +12,6 @@
  */
 
 #include <sys/types.h>
-#include "asterisk/config.h"
-#include "asterisk/options.h"
-#include "asterisk/channel.h"
-#include "asterisk/cdr.h"
-#include "asterisk/module.h"
-#include "asterisk/logger.h"
-#include "asterisk.h"
-
 #include <stdio.h>
 #include <string.h>
 
@@ -31,6 +23,17 @@
 #include <sqlext.h>
 #include <sqltypes.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
+#include "asterisk/config.h"
+#include "asterisk/options.h"
+#include "asterisk/channel.h"
+#include "asterisk/cdr.h"
+#include "asterisk/module.h"
+#include "asterisk/logger.h"
+
 #define DATE_FORMAT "%Y-%m-%d %T"
 
 static char *desc = "ODBC CDR Backend";
diff --git a/cdr/cdr_pgsql.c b/cdr/cdr_pgsql.c
index 2cff8f3148f6c8817d07798c74cff08b7be0ece1..7039e72cc1c2a6dea05ec82084c47ab7c8c97060 100755
--- a/cdr/cdr_pgsql.c
+++ b/cdr/cdr_pgsql.c
@@ -15,14 +15,6 @@
  */
 
 #include <sys/types.h>
-#include "asterisk/config.h"
-#include "asterisk/options.h"
-#include "asterisk/channel.h"
-#include "asterisk/cdr.h"
-#include "asterisk/module.h"
-#include "asterisk/logger.h"
-#include "asterisk.h"
-
 #include <stdio.h>
 #include <string.h>
 
@@ -32,6 +24,18 @@
 
 #include <libpq-fe.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
+#include "asterisk/config.h"
+#include "asterisk/options.h"
+#include "asterisk/channel.h"
+#include "asterisk/cdr.h"
+#include "asterisk/module.h"
+#include "asterisk/logger.h"
+#include "asterisk.h"
+
 #define DATE_FORMAT "%Y-%m-%d %T"
 
 static char *desc = "PostgreSQL CDR Backend";
diff --git a/cdr/cdr_sqlite.c b/cdr/cdr_sqlite.c
index ec6018cb16835603307ea131a4ab7c0546d9c1e6..acadb324e9250f50ba8a731462621b61ab8cafec 100755
--- a/cdr/cdr_sqlite.c
+++ b/cdr/cdr_sqlite.c
@@ -14,18 +14,20 @@
  */
 
 #include <sys/types.h>
-#include "asterisk/channel.h"
-#include "asterisk/module.h"
-#include "asterisk/logger.h"
-#include "asterisk/utils.h"
-#include "asterisk.h"
-#include "astconf.h"
 
 #include <unistd.h>
 #include <string.h>
 #include <stdlib.h>
 #include <sqlite.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
+#include "asterisk/channel.h"
+#include "asterisk/module.h"
+#include "asterisk/logger.h"
+#include "asterisk/utils.h"
 
 #define LOG_UNIQUEID	0
 #define LOG_USERFIELD	0
diff --git a/cdr/cdr_tds.c b/cdr/cdr_tds.c
index 59076a25bccb937a7fe64afca25c4bf3ed960515..0887b8f5dea8d7193fa62396649f73f34cf69e5c 100755
--- a/cdr/cdr_tds.c
+++ b/cdr/cdr_tds.c
@@ -35,14 +35,6 @@ CREATE TABLE [dbo].[cdr] (
 */
 
 #include <sys/types.h>
-#include "asterisk/config.h"
-#include "asterisk/options.h"
-#include "asterisk/channel.h"
-#include "asterisk/cdr.h"
-#include "asterisk/module.h"
-#include "asterisk/logger.h"
-#include "asterisk.h"
-
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
@@ -54,6 +46,17 @@ CREATE TABLE [dbo].[cdr] (
 #include <tdsconvert.h>
 #include <ctype.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
+#include "asterisk/config.h"
+#include "asterisk/options.h"
+#include "asterisk/channel.h"
+#include "asterisk/cdr.h"
+#include "asterisk/module.h"
+#include "asterisk/logger.h"
+
 #if !defined(TDS_INT_EXIT) 
 #define TDS_PRE_0_62
 #warning "You have older TDS, you should upgrade!"
diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index f537cf4f89956b71c776a7978015931e809465a9..102afb0f998e8acb37c7727acc291c8ddc0a6bc7 100755
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -13,6 +13,19 @@
 
 #include <stdio.h>
 #include <string.h>
+#include <sys/socket.h>
+#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <netdb.h>
+#include <arpa/inet.h>
+#include <sys/signal.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/channel.h"
 #include "asterisk/config.h"
@@ -35,14 +48,6 @@
 #include "asterisk/utils.h"
 #include "asterisk/causes.h"
 #include "asterisk/astdb.h"
-#include <sys/socket.h>
-#include <errno.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <arpa/inet.h>
-#include <sys/signal.h>
 
 static const char desc[] = "Agent Proxy Channel";
 static const char channeltype[] = "Agent";
diff --git a/channels/chan_alsa.c b/channels/chan_alsa.c
index 215a55ef09b40315e4225a0b8e9753d732550d79..9f83429206d803a8dc6e34eec36ccd4109d1360d 100755
--- a/channels/chan_alsa.c
+++ b/channels/chan_alsa.c
@@ -9,17 +9,6 @@
  * the GNU General Public License
  */
 
-#include "asterisk/frame.h"
-#include "asterisk/logger.h"
-#include "asterisk/channel.h"
-#include "asterisk/module.h"
-#include "asterisk/options.h"
-#include "asterisk/pbx.h"
-#include "asterisk/config.h"
-#include "asterisk/cli.h"
-#include "asterisk/utils.h"
-#include "asterisk/causes.h"
-#include "asterisk/endian.h"
 #include <unistd.h>
 #include <fcntl.h>
 #include <errno.h>
@@ -33,6 +22,22 @@
 #define ALSA_PCM_NEW_SW_PARAMS_API
 #include <alsa/asoundlib.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
+#include "asterisk/frame.h"
+#include "asterisk/logger.h"
+#include "asterisk/channel.h"
+#include "asterisk/module.h"
+#include "asterisk/options.h"
+#include "asterisk/pbx.h"
+#include "asterisk/config.h"
+#include "asterisk/cli.h"
+#include "asterisk/utils.h"
+#include "asterisk/causes.h"
+#include "asterisk/endian.h"
+
 #include "busy.h"
 #include "ringtone.h"
 #include "ring10.h"
diff --git a/channels/chan_features.c b/channels/chan_features.c
index 6a852bc5c17e15d9a9b8bb0411a18ff4a11ef1d6..03bdba70601fb870ba6ce92695658ec4ee8c9004 100755
--- a/channels/chan_features.c
+++ b/channels/chan_features.c
@@ -13,6 +13,19 @@
 
 #include <stdio.h>
 #include <string.h>
+#include <sys/socket.h>
+#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <netdb.h>
+#include <arpa/inet.h>
+#include <sys/signal.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/channel.h"
 #include "asterisk/config.h"
@@ -31,15 +44,6 @@
 #include "asterisk/app.h"
 #include "asterisk/musiconhold.h"
 #include "asterisk/manager.h"
-#include <sys/socket.h>
-#include <errno.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <arpa/inet.h>
-#include <sys/signal.h>
-
 
 static const char desc[] = "Feature Proxy Channel";
 static const char type[] = "Feature";
diff --git a/channels/chan_h323.c b/channels/chan_h323.c
index f6c9cd5397b4c1b300cb284ec5c70fc509ce7be5..a449098597ceea8bc88e08d8d28920180795e2fd 100755
--- a/channels/chan_h323.c
+++ b/channels/chan_h323.c
@@ -49,6 +49,11 @@
 #ifdef __cplusplus
 extern "C" {
 #endif   
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/logger.h"
 #include "asterisk/channel.h"
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index bd64da658a00c39a368b7042743408d8370f16b5..abb9ef2560b3c77b6b73453cc28dbe155dcc3c23 100755
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -11,6 +11,10 @@
  * the GNU General Public License
  */
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/frame.h" 
 #include "asterisk/channel.h"
diff --git a/channels/chan_local.c b/channels/chan_local.c
index bc177f676080aa223fd12cf7fb6a815db0c42034..e2e54f86cff5526969b849b7437868e8243b81e5 100755
--- a/channels/chan_local.c
+++ b/channels/chan_local.c
@@ -13,6 +13,19 @@
 
 #include <stdio.h>
 #include <string.h>
+#include <sys/socket.h>
+#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <netdb.h>
+#include <arpa/inet.h>
+#include <sys/signal.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/channel.h"
 #include "asterisk/config.h"
@@ -31,14 +44,6 @@
 #include "asterisk/app.h"
 #include "asterisk/musiconhold.h"
 #include "asterisk/manager.h"
-#include <sys/socket.h>
-#include <errno.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <arpa/inet.h>
-#include <sys/signal.h>
 
 static const char desc[] = "Local Proxy Channel";
 static const char type[] = "Local";
diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c
index acac0653c55bac62d61064f3543d475d2b16c320..843af438da859d5765bb24e840283b8294d12417 100755
--- a/channels/chan_mgcp.c
+++ b/channels/chan_mgcp.c
@@ -55,6 +55,25 @@
 
 #include <stdio.h>
 #include <string.h>
+#include <sys/socket.h>
+#include <sys/ioctl.h>
+#include <net/if.h>
+#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <netdb.h>
+#include <arpa/inet.h>
+#include <sys/signal.h>
+#include <signal.h>
+#include <netinet/in_systm.h>
+#include <netinet/ip.h>
+#include <ctype.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/channel.h"
 #include "asterisk/config.h"
@@ -77,22 +96,7 @@
 #include "asterisk/musiconhold.h"
 #include "asterisk/utils.h"
 #include "asterisk/causes.h"
-#include <sys/socket.h>
-#include <sys/ioctl.h>
-#include <net/if.h>
-#include <errno.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <arpa/inet.h>
-#include <sys/signal.h>
-#include <signal.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-
 #include "asterisk/dsp.h"
-#include <ctype.h>
 
 #ifndef IPTOS_MINCOST
 #define IPTOS_MINCOST 0x02
diff --git a/channels/chan_modem.c b/channels/chan_modem.c
index ad80e3e4898452373ae874739ade4c577f387328..c1e61a0bcc6884c64dcbd11b8c496fa89291564b 100755
--- a/channels/chan_modem.c
+++ b/channels/chan_modem.c
@@ -13,15 +13,6 @@
 
 #include <stdio.h>
 #include <string.h>
-#include "asterisk/lock.h"
-#include "asterisk/channel.h"
-#include "asterisk/config.h"
-#include "asterisk/logger.h"
-#include "asterisk/module.h"
-#include "asterisk/pbx.h"
-#include "asterisk/options.h"
-#include "asterisk/vmodem.h"
-#include "asterisk/utils.h"
 #include <sys/socket.h>
 #include <sys/time.h>
 #include <errno.h>
@@ -35,6 +26,20 @@
 #include <sys/signal.h>
 #include <ctype.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
+#include "asterisk/lock.h"
+#include "asterisk/channel.h"
+#include "asterisk/config.h"
+#include "asterisk/logger.h"
+#include "asterisk/module.h"
+#include "asterisk/pbx.h"
+#include "asterisk/options.h"
+#include "asterisk/vmodem.h"
+#include "asterisk/utils.h"
+
 /* Up to 10 seconds for an echo to arrive */
 #define ECHO_TIMEOUT 10
 
diff --git a/channels/chan_modem_aopen.c b/channels/chan_modem_aopen.c
index c14a8f6d4986c29727cd68b93e8de4cd01d4cb16..ec6a35fcaf412c388ff18c1d541f82ae42f8ecb0 100755
--- a/channels/chan_modem_aopen.c
+++ b/channels/chan_modem_aopen.c
@@ -16,6 +16,11 @@
 #include <string.h>
 #include <stdlib.h>
 #include <errno.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/vmodem.h"
 #include "asterisk/module.h"
diff --git a/channels/chan_modem_bestdata.c b/channels/chan_modem_bestdata.c
index aff1d5df981a8e2778a271d2a578055a8f666ecd..f1f6a90c9277718bc98a487d82e9f5b0a19c3162 100755
--- a/channels/chan_modem_bestdata.c
+++ b/channels/chan_modem_bestdata.c
@@ -18,6 +18,11 @@
 #include <stdlib.h>
 #include <errno.h>
 #include <unistd.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/vmodem.h"
 #include "asterisk/module.h"
diff --git a/channels/chan_modem_i4l.c b/channels/chan_modem_i4l.c
index 65a28223cb9aa141b9bc1009b8c03db011b5c0e1..92cca420aadfa09c8284b2e93e2d2877871fa61c 100755
--- a/channels/chan_modem_i4l.c
+++ b/channels/chan_modem_i4l.c
@@ -18,6 +18,11 @@
 #include <errno.h>
 #include <unistd.h>
 #include <sys/ioctl.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/vmodem.h"
 #include "asterisk/module.h"
diff --git a/channels/chan_nbs.c b/channels/chan_nbs.c
index fb5809cc00e17668c6adb1192d2d214215563b58..1c7277646dd60eebbc2f9c32152be057d8090623 100755
--- a/channels/chan_nbs.c
+++ b/channels/chan_nbs.c
@@ -13,13 +13,6 @@
 
 #include <stdio.h>
 #include <string.h>
-#include "asterisk/lock.h"
-#include "asterisk/channel.h"
-#include "asterisk/config.h"
-#include "asterisk/logger.h"
-#include "asterisk/module.h"
-#include "asterisk/pbx.h"
-#include "asterisk/options.h"
 #include <sys/socket.h>
 #include <sys/time.h>
 #include <errno.h>
@@ -30,6 +23,18 @@
 #include <sys/ioctl.h>
 #include <nbs.h>
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
+#include "asterisk/lock.h"
+#include "asterisk/channel.h"
+#include "asterisk/config.h"
+#include "asterisk/logger.h"
+#include "asterisk/module.h"
+#include "asterisk/pbx.h"
+#include "asterisk/options.h"
+
 static const char desc[] = "Network Broadcast Sound Support";
 static const char type[] = "NBS";
 static const char tdesc[] = "Network Broadcast Sound Driver";
diff --git a/channels/chan_oss.c b/channels/chan_oss.c
index f52da8b73a10046a558d15c0d0bea29b1eb6943b..2d13446451d8c95dbfd33ddc95b3e252c4730d6e 100755
--- a/channels/chan_oss.c
+++ b/channels/chan_oss.c
@@ -15,18 +15,6 @@
  * the GNU General Public License
  */
 
-#include "asterisk/lock.h"
-#include "asterisk/frame.h"
-#include "asterisk/logger.h"
-#include "asterisk/channel.h"
-#include "asterisk/module.h"
-#include "asterisk/options.h"
-#include "asterisk/pbx.h"
-#include "asterisk/config.h"
-#include "asterisk/cli.h"
-#include "asterisk/utils.h"
-#include "asterisk/causes.h"
-#include "asterisk/endian.h"
 #include <unistd.h>
 #include <fcntl.h>
 #include <errno.h>
@@ -43,6 +31,24 @@
 #else
 #include <soundcard.h>
 #endif
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
+#include "asterisk/lock.h"
+#include "asterisk/frame.h"
+#include "asterisk/logger.h"
+#include "asterisk/channel.h"
+#include "asterisk/module.h"
+#include "asterisk/options.h"
+#include "asterisk/pbx.h"
+#include "asterisk/config.h"
+#include "asterisk/cli.h"
+#include "asterisk/utils.h"
+#include "asterisk/causes.h"
+#include "asterisk/endian.h"
+
 #include "busy.h"
 #include "ringtone.h"
 #include "ring10.h"
diff --git a/channels/chan_phone.c b/channels/chan_phone.c
index dd8aa6501cf30286d1d5613d9f4b2b10bb523220..513be4e3840c38bc55a863eb41d1691e6c39f976 100755
--- a/channels/chan_phone.c
+++ b/channels/chan_phone.c
@@ -14,16 +14,6 @@
 #include <stdio.h>
 #include <string.h>
 #include <ctype.h>
-#include "asterisk/lock.h"
-#include "asterisk/channel.h"
-#include "asterisk/config.h"
-#include "asterisk/logger.h"
-#include "asterisk/module.h"
-#include "asterisk/pbx.h"
-#include "asterisk/options.h"
-#include "asterisk/utils.h"
-#include "asterisk/callerid.h"
-#include "asterisk/causes.h"
 #include <sys/socket.h>
 #include <sys/time.h>
 #include <errno.h>
@@ -39,6 +29,21 @@
 # include <linux/compiler.h>
 #endif
 #include <linux/ixjuser.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
+#include "asterisk/lock.h"
+#include "asterisk/channel.h"
+#include "asterisk/config.h"
+#include "asterisk/logger.h"
+#include "asterisk/module.h"
+#include "asterisk/pbx.h"
+#include "asterisk/options.h"
+#include "asterisk/utils.h"
+#include "asterisk/callerid.h"
+#include "asterisk/causes.h"
 #include "DialTone.h"
 
 #ifdef QTI_PHONEJACK_TJ_PCI	/* check for the newer quicknet driver v.3.1.0 which has this symbol */
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index e2cd3ac18fbd2000c76880452d745acd9a432965..f677d839b3be505505155b9dd743a3034e3ad36b 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -15,6 +15,25 @@
 #include <stdio.h>
 #include <ctype.h>
 #include <string.h>
+#include <sys/socket.h>
+#include <sys/ioctl.h>
+#include <net/if.h>
+#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <netdb.h>
+#include <arpa/inet.h>
+#include <signal.h>
+#include <sys/signal.h>
+#include <netinet/in_systm.h>
+#include <netinet/ip.h>
+#include <regex.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/channel.h"
 #include "asterisk/config.h"
@@ -45,20 +64,6 @@
 #ifdef OSP_SUPPORT
 #include "asterisk/astosp.h"
 #endif
-#include <sys/socket.h>
-#include <sys/ioctl.h>
-#include <net/if.h>
-#include <errno.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <arpa/inet.h>
-#include <signal.h>
-#include <sys/signal.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-#include <regex.h>
 
 #ifndef DEFAULT_USERAGENT
 #define DEFAULT_USERAGENT "Asterisk PBX"
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index 2b058dd464e0db452b64b3ba7dd3e1f86cf1e386..e5fd4c92da3931e4c5fa0ade913b74c624237be8 100755
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -16,6 +16,24 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#include <sys/ioctl.h>
+#include <net/if.h>
+#include <errno.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <netdb.h>
+#include <arpa/inet.h>
+#include <sys/signal.h>
+#include <signal.h>
+#include <ctype.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/channel.h"
 #include "asterisk/config.h"
@@ -37,20 +55,7 @@
 #include "asterisk/app.h"
 #include "asterisk/musiconhold.h"
 #include "asterisk/utils.h"
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netinet/tcp.h>
-#include <sys/ioctl.h>
-#include <net/if.h>
-#include <errno.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <arpa/inet.h>
-#include <sys/signal.h>
-#include <signal.h>
 #include "asterisk/dsp.h"
-#include <ctype.h>
 
 /************************************************************************************/
 /*                         Skinny/Asterisk Protocol Settings                        */
diff --git a/channels/chan_vpb.c b/channels/chan_vpb.c
index ea663228b9e78d848077c1cff8406ee34723f285..848c2b762021500b4500a042f674b4e1e99a0bea 100755
--- a/channels/chan_vpb.c
+++ b/channels/chan_vpb.c
@@ -22,6 +22,11 @@ extern "C" {
 
 #include <stdio.h>
 #include <string.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/lock.h"
 #include "asterisk/utils.h"
 #include "asterisk/channel.h"
@@ -33,7 +38,6 @@ extern "C" {
 #include "asterisk/callerid.h"
 #include "asterisk/dsp.h"
 #include "asterisk/features.h"
-
 }
 
 #include <sys/socket.h>
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 14b257cb68fab77b7b924ec94f5721939b4a3fcb..bd72c71814db402c3616d8d5f819da12f3f39ffe 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -13,32 +13,6 @@
 
 #include <stdio.h>
 #include <string.h>
-#include "asterisk/lock.h"
-#include "asterisk/channel.h"
-#include "asterisk/config.h"
-#include "asterisk/logger.h"
-#include "asterisk/module.h"
-#include "asterisk/pbx.h"
-#include "asterisk/options.h"
-#include "asterisk/file.h"
-#include "asterisk/ulaw.h"
-#include "asterisk/alaw.h"
-#include "asterisk/callerid.h"
-#include "asterisk/adsi.h"
-#include "asterisk/cli.h"
-#include "asterisk/cdr.h"
-#include "asterisk/features.h"
-#include "asterisk/musiconhold.h"
-#include "asterisk/say.h"
-#include "asterisk/tdd.h"
-#include "asterisk/app.h"
-#include "asterisk/dsp.h"
-#include "asterisk/astdb.h"
-#include "asterisk/manager.h"
-#include "asterisk/causes.h"
-#include "asterisk/term.h"
-#include "asterisk/utils.h"
-#include "asterisk/transcap.h"
 #include <sys/signal.h>
 #include <errno.h>
 #include <stdlib.h>
@@ -67,6 +41,35 @@
 
 #include "asterisk.h"
 
+ASTERISK_FILE_VERSION("$Revision$")
+
+#include "asterisk/lock.h"
+#include "asterisk/channel.h"
+#include "asterisk/config.h"
+#include "asterisk/logger.h"
+#include "asterisk/module.h"
+#include "asterisk/pbx.h"
+#include "asterisk/options.h"
+#include "asterisk/file.h"
+#include "asterisk/ulaw.h"
+#include "asterisk/alaw.h"
+#include "asterisk/callerid.h"
+#include "asterisk/adsi.h"
+#include "asterisk/cli.h"
+#include "asterisk/cdr.h"
+#include "asterisk/features.h"
+#include "asterisk/musiconhold.h"
+#include "asterisk/say.h"
+#include "asterisk/tdd.h"
+#include "asterisk/app.h"
+#include "asterisk/dsp.h"
+#include "asterisk/astdb.h"
+#include "asterisk/manager.h"
+#include "asterisk/causes.h"
+#include "asterisk/term.h"
+#include "asterisk/utils.h"
+#include "asterisk/transcap.h"
+
 #ifndef ZT_SIG_EM_E1
 #error "Your zaptel is too old.  please cvs update"
 #endif
diff --git a/channels/iax2-parser.c b/channels/iax2-parser.c
index cb21253875ccbf00f81e55f7b6f0feeda1ae89e6..dddf1349bd35e1662fb516324808ae0912eeaf3a 100755
--- a/channels/iax2-parser.c
+++ b/channels/iax2-parser.c
@@ -15,6 +15,11 @@
 #include <sys/socket.h>
 #include <string.h>
 #include <netinet/in.h>
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/frame.h"
 #include "asterisk/utils.h"
 #include "asterisk/unaligned.h"
diff --git a/channels/iax2-provision.c b/channels/iax2-provision.c
index f44dcba8c9750f41766bc30e89ae8676189f0db2..143c1b521d28ca69eb85829352a606aa7abe8f7e 100755
--- a/channels/iax2-provision.c
+++ b/channels/iax2-provision.c
@@ -12,6 +12,10 @@
  *
  */
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION("$Revision$")
+
 #include "asterisk/config.h"
 #include "asterisk/logger.h"
 #include "asterisk/cli.h"