diff --git a/apps/app_queue.c b/apps/app_queue.c
index d0c037ba6cc728c6430c4c2054d1f58b57a1f8be..cdd029b32fc647510b337ceeb06469ab92004b04 100755
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -275,6 +275,7 @@ struct ast_call_queue {
 		unsigned int timeoutrestart:1;
 		unsigned int announceholdtime:2;
 		unsigned int strategy:3;
+		unsigned int maskmemberstatus:1;
 	int announcefrequency;          /* How often to announce their position */
 	int roundingseconds;            /* How many seconds do we round to? */
 	int holdtime;                   /* Current avg holdtime, based on recursive boxcar filter */
@@ -424,17 +425,19 @@ static void *changethread(void *data)
 			if (!strcasecmp(sc->dev, cur->interface)) {
 				if (cur->status != sc->state) {
 					cur->status = sc->state;
-					manager_event(EVENT_FLAG_AGENT, "QueueMemberStatus",
-						"Queue: %s\r\n"
-						"Location: %s\r\n"
-						"Membership: %s\r\n"
-						"Penalty: %d\r\n"
-						"CallsTaken: %d\r\n"
-						"LastCall: %ld\r\n"
-						"Status: %d\r\n"
-						"Paused: %d\r\n",
-					q->name, cur->interface, cur->dynamic ? "dynamic" : "static",
-					cur->penalty, cur->calls, cur->lastcall, cur->status, cur->paused);
+					if (!q->maskmemberstatus) {
+						manager_event(EVENT_FLAG_AGENT, "QueueMemberStatus",
+							"Queue: %s\r\n"
+							"Location: %s\r\n"
+							"Membership: %s\r\n"
+							"Penalty: %d\r\n"
+							"CallsTaken: %d\r\n"
+							"LastCall: %ld\r\n"
+							"Status: %d\r\n"
+							"Paused: %d\r\n",
+						q->name, cur->interface, cur->dynamic ? "dynamic" : "static",
+						cur->penalty, cur->calls, cur->lastcall, cur->status, cur->paused);
+					}
 				}
 			}
 			cur = cur->next;
@@ -765,17 +768,19 @@ static int update_status(struct ast_call_queue *q, struct member *member, int st
 	while(cur) {
 		if (member == cur) {
 			cur->status = status;
-			manager_event(EVENT_FLAG_AGENT, "QueueMemberStatus",
-				"Queue: %s\r\n"
-				"Location: %s\r\n"
-				"Membership: %s\r\n"
-				"Penalty: %d\r\n"
-				"CallsTaken: %d\r\n"
-				"LastCall: %ld\r\n"
-				"Status: %d\r\n"
-				"Paused: %d\r\n",
-					q->name, cur->interface, cur->dynamic ? "dynamic" : "static",
-					cur->penalty, cur->calls, cur->lastcall, cur->status, cur->paused);
+			if (!q->maskmemberstatus) {
+				manager_event(EVENT_FLAG_AGENT, "QueueMemberStatus",
+					"Queue: %s\r\n"
+					"Location: %s\r\n"
+					"Membership: %s\r\n"
+					"Penalty: %d\r\n"
+					"CallsTaken: %d\r\n"
+					"LastCall: %ld\r\n"
+					"Status: %d\r\n"
+					"Paused: %d\r\n",
+				q->name, cur->interface, cur->dynamic ? "dynamic" : "static",
+				cur->penalty, cur->calls, cur->lastcall, cur->status, cur->paused);
+			}
 			break;
 		}
 		cur = cur->next;
@@ -2667,6 +2672,8 @@ static void reload_queues(void)
 							q->leavewhenempty = QUEUE_EMPTY_NORMAL;
 						else
 							q->leavewhenempty = 0;
+					} else if (!strcasecmp(var->name, "eventmemberstatus")) {
+						q->maskmemberstatus = !ast_true(var->value);
 					} else if (!strcasecmp(var->name, "eventwhencalled")) {
 						q->eventwhencalled = ast_true(var->value);
 					} else if (!strcasecmp(var->name, "reportholdtime")) {
diff --git a/configs/queues.conf.sample b/configs/queues.conf.sample
index a5101197a62406ace26c0adf165abaa305d8d717..ba438b1ecc7cc9a18af285f340e3ce00b15f6dbd 100755
--- a/configs/queues.conf.sample
+++ b/configs/queues.conf.sample
@@ -137,11 +137,18 @@ persistentmembers = yes
 ; leavewhenempty = yes
 ;
 ;
-; Asterisk can generate AgentCalled events when an agent is rung, if this is turned on
-; (may generate a LOT of extra manager events)
+; If this is set to yes, the following manager events will be generated:
+; AgentCalled, AgentDump, AgentConnect, AgentComplete
+; (may generate some extra manager events, but probably ones you want)
 ;
 ; eventwhencalled = yes
 ;
+; If this is set to no, the following manager events will be generated:
+; QueueMemberStatus
+; (may generate a WHOLE LOT of extra manager events)
+;
+; eventmemberstatusoff = no
+;
 ; If you wish to report the caller's hold time to the member before they are connected
 ; to the caller, set this to yes.
 ;