diff --git a/Makefile b/Makefile
index f1137ac927b2c6ec9b08371ae113434d9eadbf40..56b1dcc7b86ad262ec402a53b21d1fc1403799e8 100755
--- a/Makefile
+++ b/Makefile
@@ -660,7 +660,7 @@ apply:
 unapply: 
 	@if [ -z "$(PATCH)" ]; then \
 		echo "Usage: make PATCH=<patchname> unapply"; \
-	elif !grep -q ^$(PATCH)$$ patches/.applied 2>/dev/null; then \
+	elif ! grep -q ^$(PATCH)$$ patches/.applied 2>/dev/null; then \
 		echo "Patch $(PATCH) is not applied"; \
 	elif [ -f "patches/$(PATCH)" ]; then \
 		echo "Un-applying patch $(PATCH)"; \
diff --git a/configs/logger.conf.sample b/configs/logger.conf.sample
index bf28f2f4080a103e865fc0ce53f1a7aa2b1c4fcd..048d2ad236fbdff4bc256687f3270d395c23c18c 100755
--- a/configs/logger.conf.sample
+++ b/configs/logger.conf.sample
@@ -13,6 +13,12 @@
 ; This appends the hostname to the name of the log files.
 ;appendhostname = yes
 ;
+; This determines whether or not we log queue events to a file (defaults to yes).
+;queue_log = no
+;
+; This determines whether or not we log generic events to a file (defaults to yes).
+;event_log = no
+;
 ;
 ; For each file, specify what to log.
 ;
diff --git a/logger.c b/logger.c
index a8f7fe3fe17d2abcc898d82ee674813380a75782..a1dad8eaf43ba21c580228f6d2da540f9b7dd18c 100755
--- a/logger.c
+++ b/logger.c
@@ -61,6 +61,11 @@ AST_MUTEX_DEFINE_STATIC(loglock);
 static int pending_logger_reload = 0;
 static int global_logmask = -1;
 
+static struct {
+	unsigned int queue_log:1;
+	unsigned int event_log:1;
+} logfiles = { 1, 1 };
+
 static struct msglist {
 	char *msg;
 	struct msglist *next;
@@ -288,6 +293,13 @@ static void init_logger_chain(void)
 		strncpy(dateformat, s, sizeof(dateformat) - 1);
 	} else
 		strncpy(dateformat, "%b %e %T", sizeof(dateformat) - 1);
+	if ((s = ast_variable_retrieve(cfg, "general", "queue_log"))) {
+		logfiles.queue_log = ast_true(s);
+	}
+	if ((s = ast_variable_retrieve(cfg, "general", "event_log"))) {
+		logfiles.event_log = ast_true(s);
+	}
+
 	var = ast_variable_browse(cfg, "logfiles");
 	while(var) {
 		chan = make_logchannel(var->name, var->value, var->lineno);
@@ -332,7 +344,9 @@ static void queue_log_init(void)
 		qlog = NULL;
 	}
 	snprintf(filename, sizeof(filename), "%s/%s", (char *)ast_config_AST_LOG_DIR, "queue_log");
-	qlog = fopen(filename, "a");
+	if (logfiles.queue_log) {
+		qlog = fopen(filename, "a");
+	}
 	ast_mutex_unlock(&qloglock);
 	if (reloaded) 
 		ast_queue_log("NONE", "NONE", "NONE", "CONFIGRELOAD", "%s", "");
@@ -360,22 +374,24 @@ int reload_logger(int rotate)
 	mkdir((char *)ast_config_AST_LOG_DIR, 0755);
 	snprintf(old, sizeof(old), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
 
-	if(rotate) {
-		for(x=0;;x++) {
-			snprintf(new, sizeof(new), "%s/%s.%d", (char *)ast_config_AST_LOG_DIR, EVENTLOG,x);
-			myf = fopen((char *)new, "r");
-			if(myf) 
-				fclose(myf);
-			else
-				break;
-		}
+	if (logfiles.event_log) {
+		if (rotate) {
+			for (x=0;;x++) {
+				snprintf(new, sizeof(new), "%s/%s.%d", (char *)ast_config_AST_LOG_DIR, EVENTLOG,x);
+				myf = fopen((char *)new, "r");
+				if (myf) 
+					fclose(myf);
+				else
+					break;
+			}
 	
-		/* do it */
-		if (rename(old,new))
-			fprintf(stderr, "Unable to rename file '%s' to '%s'\n", old, new);
-	}
+			/* do it */
+			if (rename(old,new))
+				fprintf(stderr, "Unable to rename file '%s' to '%s'\n", old, new);
+		}
 
-	eventlog = fopen(old, "a");
+		eventlog = fopen(old, "a");
+	}
 
 	f = logchannels;
 	while(f) {
@@ -406,16 +422,17 @@ int reload_logger(int rotate)
 	ast_mutex_unlock(&loglock);
 
 	queue_log_init();
-
-	if (eventlog) {
-		init_logger_chain();
-		ast_log(LOG_EVENT, "Restarted Asterisk Event Logger\n");
-		if (option_verbose)
-			ast_verbose("Asterisk Event Logger restarted\n");
-		return 0;
-	} else 
-		ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
 	init_logger_chain();
+
+	if (logfiles.event_log) {
+		if (eventlog) {
+			ast_log(LOG_EVENT, "Restarted Asterisk Event Logger\n");
+			if (option_verbose)
+				ast_verbose("Asterisk Event Logger restarted\n");
+			return 0;
+		} else 
+			ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
+	}
 	pending_logger_reload = 0;
 	return -1;
 }
@@ -487,21 +504,23 @@ int init_logger(void)
 	/* initialize queue logger */
 	queue_log_init();
 
-	/* create the eventlog */
-	mkdir((char *)ast_config_AST_LOG_DIR, 0755);
-	snprintf(tmp, sizeof(tmp), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
-	eventlog = fopen((char *)tmp, "a");
-	if (eventlog) {
-		init_logger_chain();
-		ast_log(LOG_EVENT, "Started Asterisk Event Logger\n");
-		if (option_verbose)
-			ast_verbose("Asterisk Event Logger Started %s\n",(char *)tmp);
-		return 0;
-	} else 
-		ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
-
 	/* create log channels */
 	init_logger_chain();
+
+	/* create the eventlog */
+	if (logfiles.event_log) {
+		mkdir((char *)ast_config_AST_LOG_DIR, 0755);
+		snprintf(tmp, sizeof(tmp), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
+		eventlog = fopen((char *)tmp, "a");
+		if (eventlog) {
+			ast_log(LOG_EVENT, "Started Asterisk Event Logger\n");
+			if (option_verbose)
+				ast_verbose("Asterisk Event Logger Started %s\n",(char *)tmp);
+			return 0;
+		} else 
+			ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
+	}
+
 	return -1;
 }
 
@@ -576,7 +595,7 @@ void ast_log(int level, const char *file, int line, const char *function, const
 	localtime_r(&t, &tm);
 	strftime(date, sizeof(date), dateformat, &tm);
 
-	if (level == __LOG_EVENT) {
+	if (logfiles.event_log && level == __LOG_EVENT) {
 		va_start(ap, fmt);
 
 		fprintf(eventlog, "%s asterisk[%d]: ", date, getpid());
diff --git a/patches/queue_log b/patches/queue_log
deleted file mode 100755
index 50368f151ceeb64fa7d2630c672ef08b9a1e461c..0000000000000000000000000000000000000000
--- a/patches/queue_log
+++ /dev/null
@@ -1,204 +0,0 @@
-? .txt
-? DDR.MOV
-? FuzzyMath.mp3
-? config-mark.c
-? dont_panic.mp3
-? gmon.out
-? manpage.links
-? manpage.refs
-? markdiff.txt
-? mydiff.txt
-? newqueuelog
-? resume-ken-long.pdf
-? root.xwd
-? rtp-timestamp.diff.txt
-? stereo-1.0
-? test.call
-? test1.call
-? test2.call
-? test_js.txt
-? tmp1.gsm
-? tmp2.gsm
-? tmp3.gsm
-? tmp4.gsm
-? apps/app_read_broken.c
-? astman/.depend
-? astman/astman
-? cdr/cdr_csv2.c
-? channels/chan_sip_broken.c
-Index: logger.c
-===================================================================
-RCS file: /usr/cvsroot/asterisk/logger.c,v
-retrieving revision 1.57
-diff -u -r1.57 logger.c
---- logger.c	11 Mar 2005 07:24:10 -0000	1.57
-+++ logger.c	11 Mar 2005 08:27:54 -0000
-@@ -61,6 +61,11 @@
- static int pending_logger_reload = 0;
- static int global_logmask = -1;
- 
-+static struct {
-+	unsigned int queue_log:1;
-+	unsigned int event_log:1;
-+} logfiles = { 1, 1 };
-+
- static struct msglist {
- 	char *msg;
- 	struct msglist *next;
-@@ -288,6 +293,13 @@
- 		strncpy(dateformat, s, sizeof(dateformat) - 1);
- 	} else
- 		strncpy(dateformat, "%b %e %T", sizeof(dateformat) - 1);
-+	if ((s = ast_variable_retrieve(cfg, "general", "queue_log"))) {
-+		logfiles.queue_log = ast_true(s);
-+	}
-+	if ((s = ast_variable_retrieve(cfg, "general", "event_log"))) {
-+		logfiles.event_log = ast_true(s);
-+	}
-+
- 	var = ast_variable_browse(cfg, "logfiles");
- 	while(var) {
- 		chan = make_logchannel(var->name, var->value, var->lineno);
-@@ -332,7 +344,9 @@
- 		qlog = NULL;
- 	}
- 	snprintf(filename, sizeof(filename), "%s/%s", (char *)ast_config_AST_LOG_DIR, "queue_log");
--	qlog = fopen(filename, "a");
-+	if (logfiles.queue_log) {
-+		qlog = fopen(filename, "a");
-+	}
- 	ast_mutex_unlock(&qloglock);
- 	if (reloaded) 
- 		ast_queue_log("NONE", "NONE", "NONE", "CONFIGRELOAD", "%s", "");
-@@ -360,22 +374,24 @@
- 	mkdir((char *)ast_config_AST_LOG_DIR, 0755);
- 	snprintf(old, sizeof(old), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
- 
--	if(rotate) {
--		for(x=0;;x++) {
--			snprintf(new, sizeof(new), "%s/%s.%d", (char *)ast_config_AST_LOG_DIR, EVENTLOG,x);
--			myf = fopen((char *)new, "r");
--			if(myf) 
--				fclose(myf);
--			else
--				break;
--		}
-+	if (logfiles.event_log) {
-+		if (rotate) {
-+			for (x=0;;x++) {
-+				snprintf(new, sizeof(new), "%s/%s.%d", (char *)ast_config_AST_LOG_DIR, EVENTLOG,x);
-+				myf = fopen((char *)new, "r");
-+				if (myf) 
-+					fclose(myf);
-+				else
-+					break;
-+			}
- 	
--		/* do it */
--		if (rename(old,new))
--			fprintf(stderr, "Unable to rename file '%s' to '%s'\n", old, new);
--	}
-+			/* do it */
-+			if (rename(old,new))
-+				fprintf(stderr, "Unable to rename file '%s' to '%s'\n", old, new);
-+		}
- 
--	eventlog = fopen(old, "a");
-+		eventlog = fopen(old, "a");
-+	}
- 
- 	f = logchannels;
- 	while(f) {
-@@ -406,16 +422,17 @@
- 	ast_mutex_unlock(&loglock);
- 
- 	queue_log_init();
--
--	if (eventlog) {
--		init_logger_chain();
--		ast_log(LOG_EVENT, "Restarted Asterisk Event Logger\n");
--		if (option_verbose)
--			ast_verbose("Asterisk Event Logger restarted\n");
--		return 0;
--	} else 
--		ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
- 	init_logger_chain();
-+
-+	if (logfiles.event_log) {
-+		if (eventlog) {
-+			ast_log(LOG_EVENT, "Restarted Asterisk Event Logger\n");
-+			if (option_verbose)
-+				ast_verbose("Asterisk Event Logger restarted\n");
-+			return 0;
-+		} else 
-+			ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
-+	}
- 	pending_logger_reload = 0;
- 	return -1;
- }
-@@ -487,21 +504,23 @@
- 	/* initialize queue logger */
- 	queue_log_init();
- 
--	/* create the eventlog */
--	mkdir((char *)ast_config_AST_LOG_DIR, 0755);
--	snprintf(tmp, sizeof(tmp), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
--	eventlog = fopen((char *)tmp, "a");
--	if (eventlog) {
--		init_logger_chain();
--		ast_log(LOG_EVENT, "Started Asterisk Event Logger\n");
--		if (option_verbose)
--			ast_verbose("Asterisk Event Logger Started %s\n",(char *)tmp);
--		return 0;
--	} else 
--		ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
--
- 	/* create log channels */
- 	init_logger_chain();
-+
-+	/* create the eventlog */
-+	if (logfiles.event_log) {
-+		mkdir((char *)ast_config_AST_LOG_DIR, 0755);
-+		snprintf(tmp, sizeof(tmp), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
-+		eventlog = fopen((char *)tmp, "a");
-+		if (eventlog) {
-+			ast_log(LOG_EVENT, "Started Asterisk Event Logger\n");
-+			if (option_verbose)
-+				ast_verbose("Asterisk Event Logger Started %s\n",(char *)tmp);
-+			return 0;
-+		} else 
-+			ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
-+	}
-+
- 	return -1;
- }
- 
-@@ -576,7 +595,7 @@
- 	localtime_r(&t, &tm);
- 	strftime(date, sizeof(date), dateformat, &tm);
- 
--	if (level == __LOG_EVENT) {
-+	if (logfiles.event_log && level == __LOG_EVENT) {
- 		va_start(ap, fmt);
- 
- 		fprintf(eventlog, "%s asterisk[%d]: ", date, getpid());
-Index: configs/logger.conf.sample
-===================================================================
-RCS file: /usr/cvsroot/asterisk/configs/logger.conf.sample,v
-retrieving revision 1.9
-diff -u -r1.9 logger.conf.sample
---- configs/logger.conf.sample	5 Sep 2004 03:48:05 -0000	1.9
-+++ configs/logger.conf.sample	11 Mar 2005 08:27:55 -0000
-@@ -13,6 +13,12 @@
- ; This appends the hostname to the name of the log files.
- ;appendhostname = yes
- ;
-+; This determines whether or not we log queue events to a file (defaults to yes).
-+;queue_log = no
-+;
-+; This determines whether or not we log generic events to a file (defaults to yes).
-+;event_log = no
-+;
- ;
- ; For each file, specify what to log.
- ;