Index: pbx/pbx_realtime.c
===================================================================
--- pbx/pbx_realtime.c	(revision 187673)
+++ pbx/pbx_realtime.c	(working copy)
@@ -240,15 +240,16 @@
 						 term_color(tmp1, app, COLOR_BRCYAN, 0, sizeof(tmp1)),
 						 term_color(tmp2, chan->name, COLOR_BRMAGENTA, 0, sizeof(tmp2)),
 						 term_color(tmp3, S_OR(appdata, ""), COLOR_BRMAGENTA, 0, sizeof(tmp3)));
-				manager_event(EVENT_FLAG_DIALPLAN, "Newexten",
-							  "Channel: %s\r\n"
-							  "Context: %s\r\n"
-							  "Extension: %s\r\n"
-							  "Priority: %d\r\n"
-							  "Application: %s\r\n"
-							  "AppData: %s\r\n"
-							  "Uniqueid: %s\r\n",
-							  chan->name, chan->context, chan->exten, chan->priority, app, !ast_strlen_zero(appdata) ? appdata : "(NULL)", chan->uniqueid);
+				if (chan->send_manager)		   
+					manager_event(EVENT_FLAG_DIALPLAN, "Newexten",
+								  "Channel: %s\r\n"
+								  "Context: %s\r\n"
+								  "Extension: %s\r\n"
+								  "Priority: %d\r\n"
+								  "Application: %s\r\n"
+								  "AppData: %s\r\n"
+								  "Uniqueid: %s\r\n",
+								  chan->name, chan->context, chan->exten, chan->priority, app, !ast_strlen_zero(appdata) ? appdata : "(NULL)", chan->uniqueid);
 				
 				res = pbx_exec(chan, a, appdata);
 			} else
Index: apps/app_meetme.c
===================================================================
--- apps/app_meetme.c	(revision 187673)
+++ apps/app_meetme.c	(working copy)
@@ -2423,7 +2423,7 @@
 	}
 	ast_debug(1, "Placed channel %s in DAHDI conf %d\n", chan->name, conf->dahdiconf);
 
-	if (!sent_event) {
+	if (!sent_event && chan->send_manager) {
 		manager_event(EVENT_FLAG_CALL, "MeetmeJoin", 
 			        "Channel: %s\r\n"
 			        "Uniqueid: %s\r\n"
@@ -2752,13 +2752,15 @@
 					break;
 				}
 
-				manager_event(EVENT_FLAG_CALL, "MeetmeMute", 
-						"Channel: %s\r\n"
-						"Uniqueid: %s\r\n"
-						"Meetme: %s\r\n"
-						"Usernum: %i\r\n"
-						"Status: on\r\n",
-						chan->name, chan->uniqueid, conf->confno, user->user_no);
+				if (chan->send_manager) {
+					manager_event(EVENT_FLAG_CALL, "MeetmeMute", 
+							"Channel: %s\r\n"
+							"Uniqueid: %s\r\n"
+							"Meetme: %s\r\n"
+							"Usernum: %i\r\n"
+							"Status: on\r\n",
+							chan->name, chan->uniqueid, conf->confno, user->user_no);
+				}
 			}
 
 			/* If I should be un-muted but am not talker, un-mute me */
@@ -2770,39 +2772,45 @@
 					break;
 				}
 
-				manager_event(EVENT_FLAG_CALL, "MeetmeMute", 
-						"Channel: %s\r\n"
-						"Uniqueid: %s\r\n"
-						"Meetme: %s\r\n"
-						"Usernum: %i\r\n"
-						"Status: off\r\n",
-						chan->name, chan->uniqueid, conf->confno, user->user_no);
+				if (chan->send_manager) {
+					manager_event(EVENT_FLAG_CALL, "MeetmeMute", 
+							"Channel: %s\r\n"
+							"Uniqueid: %s\r\n"
+							"Meetme: %s\r\n"
+							"Usernum: %i\r\n"
+							"Status: off\r\n",
+							chan->name, chan->uniqueid, conf->confno, user->user_no);
+				}
 			}
 			
 			if ((user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED)) && 
 				(user->adminflags & ADMINFLAG_T_REQUEST) && !(talkreq_manager)) {
 				talkreq_manager = 1;
 
-				manager_event(EVENT_FLAG_CALL, "MeetmeTalkRequest", 
-					      "Channel: %s\r\n"
+				if (chan->send_manager) {
+					manager_event(EVENT_FLAG_CALL, "MeetmeTalkRequest", 
+							      "Channel: %s\r\n"
 							      "Uniqueid: %s\r\n"
 							      "Meetme: %s\r\n"
 							      "Usernum: %i\r\n"
 							      "Status: on\r\n",
 							      chan->name, chan->uniqueid, conf->confno, user->user_no);
+				}
 			}
 
 			
 			if (!(user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED)) && 
 				!(user->adminflags & ADMINFLAG_T_REQUEST) && (talkreq_manager)) {
 				talkreq_manager = 0;
-				manager_event(EVENT_FLAG_CALL, "MeetmeTalkRequest", 
-					      "Channel: %s\r\n"
+				if (chan->send_manager) {
+					manager_event(EVENT_FLAG_CALL, "MeetmeTalkRequest", 
+							      "Channel: %s\r\n"
 							      "Uniqueid: %s\r\n"
 							      "Meetme: %s\r\n"
 							      "Usernum: %i\r\n"
 							      "Status: off\r\n",
 							     chan->name, chan->uniqueid, conf->confno, user->user_no);
+				}
 			}
 			
 			/* If I have been kicked, exit the conference */
@@ -2866,24 +2874,26 @@
 						if (!user->talking && totalsilence < MEETME_DELAYDETECTTALK) {
 							user->talking = 1;
 							if (confflags & CONFFLAG_MONITORTALKER)
-								manager_event(EVENT_FLAG_CALL, "MeetmeTalking",
-								      "Channel: %s\r\n"
-								      "Uniqueid: %s\r\n"
-								      "Meetme: %s\r\n"
-								      "Usernum: %d\r\n"
-								      "Status: on\r\n",
-								      chan->name, chan->uniqueid, conf->confno, user->user_no);
+								if (chan->send_manager)		   
+									manager_event(EVENT_FLAG_CALL, "MeetmeTalking",
+									      "Channel: %s\r\n"
+									      "Uniqueid: %s\r\n"
+									      "Meetme: %s\r\n"
+									      "Usernum: %d\r\n"
+									      "Status: on\r\n",
+									      chan->name, chan->uniqueid, conf->confno, user->user_no);
 						}
 						if (user->talking && totalsilence > MEETME_DELAYDETECTENDTALK) {
 							user->talking = 0;
 							if (confflags & CONFFLAG_MONITORTALKER) {
-								manager_event(EVENT_FLAG_CALL, "MeetmeTalking",
-								      "Channel: %s\r\n"
-								      "Uniqueid: %s\r\n"
-								      "Meetme: %s\r\n"
-								      "Usernum: %d\r\n"
-								      "Status: off\r\n",
-								      chan->name, chan->uniqueid, conf->confno, user->user_no);
+								if (chan->send_manager)		   
+									manager_event(EVENT_FLAG_CALL, "MeetmeTalking",
+									      "Channel: %s\r\n"
+									      "Uniqueid: %s\r\n"
+									      "Meetme: %s\r\n"
+									      "Usernum: %d\r\n"
+									      "Status: off\r\n",
+									      chan->name, chan->uniqueid, conf->confno, user->user_no);
 							}
 						}
 					}
@@ -3275,7 +3285,7 @@
 		min = ((now.tv_sec - user->jointime) % 3600) / 60;
 		sec = (now.tv_sec - user->jointime) % 60;
 
-		if (sent_event) {
+		if (sent_event && chan->send_manager) {
 			manager_event(EVENT_FLAG_CALL, "MeetmeLeave",
 				      "Channel: %s\r\n"
 				      "Uniqueid: %s\r\n"
Index: apps/app_dial.c
===================================================================
--- apps/app_dial.c	(revision 187673)
+++ apps/app_dial.c	(working copy)
@@ -681,28 +681,30 @@
 
 static void senddialevent(struct ast_channel *src, struct ast_channel *dst, const char *dialstring)
 {
-	manager_event(EVENT_FLAG_CALL, "Dial",
-		"SubEvent: Begin\r\n"
-		"Channel: %s\r\n"
-		"Destination: %s\r\n"
-		"CallerIDNum: %s\r\n"
-		"CallerIDName: %s\r\n"
-		"UniqueID: %s\r\n"
-		"DestUniqueID: %s\r\n"
-		"Dialstring: %s\r\n",
-		src->name, dst->name, S_OR(src->cid.cid_num, "<unknown>"),
-		S_OR(src->cid.cid_name, "<unknown>"), src->uniqueid,
-		dst->uniqueid, dialstring ? dialstring : "");
+	if (src->send_manager)    
+		manager_event(EVENT_FLAG_CALL, "Dial",
+			"SubEvent: Begin\r\n"
+			"Channel: %s\r\n"
+			"Destination: %s\r\n"
+			"CallerIDNum: %s\r\n"
+			"CallerIDName: %s\r\n"
+			"UniqueID: %s\r\n"
+			"DestUniqueID: %s\r\n"
+			"Dialstring: %s\r\n",
+			src->name, dst->name, S_OR(src->cid.cid_num, "<unknown>"),
+			S_OR(src->cid.cid_name, "<unknown>"), src->uniqueid,
+			dst->uniqueid, dialstring ? dialstring : "");
 }
 
 static void senddialendevent(const struct ast_channel *src, const char *dialstatus)
 {
-	manager_event(EVENT_FLAG_CALL, "Dial",
-		"SubEvent: End\r\n"
-		"Channel: %s\r\n"
-		"UniqueID: %s\r\n"
-		"DialStatus: %s\r\n",
-		src->name, src->uniqueid, dialstatus);
+	if (src->send_manager)   
+		manager_event(EVENT_FLAG_CALL, "Dial",
+			"SubEvent: End\r\n"
+			"Channel: %s\r\n"
+			"UniqueID: %s\r\n"
+			"DialStatus: %s\r\n",
+			src->name, src->uniqueid, dialstatus);
 }
 
 /*!
Index: apps/app_queue.c
===================================================================
--- apps/app_queue.c	(revision 187673)
+++ apps/app_queue.c	(working copy)
@@ -3937,7 +3937,7 @@
 				/* Agent must have hung up */
 				ast_log(LOG_WARNING, "Agent on %s hungup on the customer.\n", peer->name);
 				ast_queue_log(queuename, qe->chan->uniqueid, member->membername, "AGENTDUMP", "%s", "");
-				if (qe->parent->eventwhencalled)
+				if (qe->parent->eventwhencalled && qe->chan->send_manager)
 					manager_event(EVENT_FLAG_AGENT, "AgentDump",
 							"Queue: %s\r\n"
 							"Uniqueid: %s\r\n"
Index: include/asterisk/channel.h
===================================================================
--- include/asterisk/channel.h	(revision 187673)
+++ include/asterisk/channel.h	(working copy)
@@ -639,6 +639,7 @@
 	int epfd;
 #endif
 	int visible_indication;                         /*!< Indication currently playing on the channel */
+ 	int send_manager;                               /*!< Enable/Disable Manager Event on the channel */
 
 	unsigned short transfercapability;		/*!< ISDN Transfer Capability - AST_FLAG_DIGITAL is not enough */
 
Index: main/channel.c
===================================================================
--- main/channel.c	(revision 187673)
+++ main/channel.c	(working copy)
@@ -913,7 +913,8 @@
 		strcpy(tmp->exten, "s");
 
 	tmp->priority = 1;
-		
+        tmp->send_manager = 1;
+
 	tmp->cdr = ast_cdr_alloc();
 	ast_cdr_init(tmp->cdr, tmp);
 	ast_cdr_start(tmp->cdr);
@@ -939,7 +940,7 @@
 	 * proper and correct place to make this call, but you sure do have to pass
 	 * a lot of data into this func to do it here!
 	 */
-	if (!ast_strlen_zero(name_fmt)) {
+	if (!ast_strlen_zero(name_fmt) && tmp->send_manager) {
 		manager_event(EVENT_FLAG_CALL, "Newchannel",
 			"Channel: %s\r\n"
 			"ChannelState: %d\r\n"
@@ -1957,21 +1958,23 @@
 	}
 			
 	ast_channel_unlock(chan);
-	manager_event(EVENT_FLAG_CALL, "Hangup",
-			"Channel: %s\r\n"
-			"Uniqueid: %s\r\n"
-			"CallerIDNum: %s\r\n"
-			"CallerIDName: %s\r\n"
-			"Cause: %d\r\n"
-			"Cause-txt: %s\r\n",
-			chan->name,
-			chan->uniqueid,
-			S_OR(chan->cid.cid_num, "<unknown>"),
-			S_OR(chan->cid.cid_name, "<unknown>"),
-			chan->hangupcause,
-			ast_cause2str(chan->hangupcause)
-			);
 
+	if (chan->send_manager)   
+		manager_event(EVENT_FLAG_CALL, "Hangup",
+				"Channel: %s\r\n"
+				"Uniqueid: %s\r\n"
+				"CallerIDNum: %s\r\n"
+				"CallerIDName: %s\r\n"
+				"Cause: %d\r\n"
+				"Cause-txt: %s\r\n",
+				chan->name,
+				chan->uniqueid,
+				S_OR(chan->cid.cid_num, "<unknown>"),
+				S_OR(chan->cid.cid_name, "<unknown>"),
+				chan->hangupcause,
+				ast_cause2str(chan->hangupcause)
+				);
+
 	if (chan->cdr && !ast_test_flag(chan->cdr, AST_CDR_FLAG_BRIDGED) && 
 		!ast_test_flag(chan->cdr, AST_CDR_FLAG_POST_DISABLED) && 
 	    (chan->cdr->disposition != AST_CDR_NULL || ast_test_flag(chan->cdr, AST_CDR_FLAG_DIALED))) {
@@ -2708,15 +2711,16 @@
 
 static void send_dtmf_event(const struct ast_channel *chan, const char *direction, const char digit, const char *begin, const char *end)
 {
-	manager_event(EVENT_FLAG_DTMF,
-			"DTMF",
-			"Channel: %s\r\n"
-			"Uniqueid: %s\r\n"
-			"Digit: %c\r\n"
-			"Direction: %s\r\n"
-			"Begin: %s\r\n"
-			"End: %s\r\n",
-			chan->name, chan->uniqueid, digit, direction, begin, end);
+	if (chan->send_manager)
+		manager_event(EVENT_FLAG_DTMF,
+				"DTMF",
+				"Channel: %s\r\n"
+				"Uniqueid: %s\r\n"
+				"Digit: %c\r\n"
+				"Direction: %s\r\n"
+				"Begin: %s\r\n"
+				"End: %s\r\n",
+				chan->name, chan->uniqueid, digit, direction, begin, end);
 }
 
 static void ast_read_generator_actions(struct ast_channel *chan, struct ast_frame *f)
@@ -4354,7 +4358,8 @@
 
 void ast_change_name(struct ast_channel *chan, char *newname)
 {
-	manager_event(EVENT_FLAG_CALL, "Rename", "Channel: %s\r\nNewname: %s\r\nUniqueid: %s\r\n", chan->name, newname, chan->uniqueid);
+	if (chan->send_manager)   
+		manager_event(EVENT_FLAG_CALL, "Rename", "Channel: %s\r\nNewname: %s\r\nUniqueid: %s\r\n", chan->name, newname, chan->uniqueid);
 	ast_string_field_set(chan, name, newname);
 }
 
@@ -4454,8 +4459,9 @@
 	ast_debug(4, "Actually Masquerading %s(%d) into the structure of %s(%d)\n",
 		clonechan->name, clonechan->_state, original->name, original->_state);
 
-	manager_event(EVENT_FLAG_CALL, "Masquerade", "Clone: %s\r\nCloneState: %s\r\nOriginal: %s\r\nOriginalState: %s\r\n",
-		      clonechan->name, ast_state2str(clonechan->_state), original->name, ast_state2str(original->_state));
+	if (original->send_manager)   
+		manager_event(EVENT_FLAG_CALL, "Masquerade", "Clone: %s\r\nCloneState: %s\r\nOriginal: %s\r\nOriginalState: %s\r\n",
+			      clonechan->name, ast_state2str(clonechan->_state), original->name, ast_state2str(original->_state));
 
 	/* XXX This is a seriously wacked out operation.  We're essentially putting the guts of
 	   the clone channel into the original channel.  Start by killing off the original
@@ -4491,9 +4497,11 @@
 	ast_string_field_set(clonechan, name, masqn);
 	
 	/* Notify any managers of the change, first the masq then the other */
-	manager_event(EVENT_FLAG_CALL, "Rename", "Channel: %s\r\nNewname: %s\r\nUniqueid: %s\r\n", newn, masqn, clonechan->uniqueid);
-	manager_event(EVENT_FLAG_CALL, "Rename", "Channel: %s\r\nNewname: %s\r\nUniqueid: %s\r\n", orig, newn, original->uniqueid);
-
+	if (original->send_manager) {	
+		manager_event(EVENT_FLAG_CALL, "Rename", "Channel: %s\r\nNewname: %s\r\nUniqueid: %s\r\n", newn, masqn, clonechan->uniqueid);
+		manager_event(EVENT_FLAG_CALL, "Rename", "Channel: %s\r\nNewname: %s\r\nUniqueid: %s\r\n", orig, newn, original->uniqueid);
+	}
+      
 	/* Swap the technologies */	
 	t = original->tech;
 	original->tech = clonechan->tech;
@@ -4581,7 +4589,8 @@
 	snprintf(zombn, sizeof(zombn), "%s<ZOMBIE>", orig);
 	/* Mangle the name of the clone channel */
 	ast_string_field_set(clonechan, name, zombn);
-	manager_event(EVENT_FLAG_CALL, "Rename", "Channel: %s\r\nNewname: %s\r\nUniqueid: %s\r\n", masqn, zombn, clonechan->uniqueid);
+	if (clonechan->send_manager)   
+		manager_event(EVENT_FLAG_CALL, "Rename", "Channel: %s\r\nNewname: %s\r\nUniqueid: %s\r\n", masqn, zombn, clonechan->uniqueid);
 
 	/* Update the type. */
 	t_pvt = original->monitor;
@@ -4688,16 +4697,17 @@
 	if (ast_test_flag(clonechan, AST_FLAG_ZOMBIE)) {
 		ast_debug(1, "Destroying channel clone '%s'\n", clonechan->name);
 		ast_channel_unlock(clonechan);
-		manager_event(EVENT_FLAG_CALL, "Hangup",
-			"Channel: %s\r\n"
-			"Uniqueid: %s\r\n"
-			"Cause: %d\r\n"
-			"Cause-txt: %s\r\n",
-			clonechan->name,
-			clonechan->uniqueid,
-			clonechan->hangupcause,
-			ast_cause2str(clonechan->hangupcause)
-			);
+		if (clonechan->send_manager)	   
+			manager_event(EVENT_FLAG_CALL, "Hangup",
+				"Channel: %s\r\n"
+				"Uniqueid: %s\r\n"
+				"Cause: %d\r\n"
+				"Cause-txt: %s\r\n",
+				clonechan->name,
+				clonechan->uniqueid,
+				clonechan->hangupcause,
+				ast_cause2str(clonechan->hangupcause)
+				);
 		ast_channel_free(clonechan);
 	} else {
 		ast_debug(1, "Released clone lock on '%s'\n", clonechan->name);
@@ -4732,19 +4742,20 @@
 			ast_free(chan->cid.cid_ani);
 		chan->cid.cid_ani = ast_strdup(cid_ani);
 	}
-	manager_event(EVENT_FLAG_CALL, "NewCallerid",
-				"Channel: %s\r\n"
-				"CallerIDNum: %s\r\n"
-				"CallerIDName: %s\r\n"
-				"Uniqueid: %s\r\n"
-				"CID-CallingPres: %d (%s)\r\n",
-				chan->name,
-				S_OR(chan->cid.cid_num, ""),
-				S_OR(chan->cid.cid_name, ""),
-				chan->uniqueid,
-				chan->cid.cid_pres,
-				ast_describe_caller_presentation(chan->cid.cid_pres)
-				);
+	if (chan->send_manager)   
+		manager_event(EVENT_FLAG_CALL, "NewCallerid",
+					"Channel: %s\r\n"
+					"CallerIDNum: %s\r\n"
+					"CallerIDName: %s\r\n"
+					"Uniqueid: %s\r\n"
+					"CID-CallingPres: %d (%s)\r\n",
+					chan->name,
+					S_OR(chan->cid.cid_num, ""),
+					S_OR(chan->cid.cid_name, ""),
+					chan->uniqueid,
+					chan->cid.cid_pres,
+					ast_describe_caller_presentation(chan->cid.cid_pres)
+					);
 	
 	ast_channel_unlock(chan);
 }
@@ -4770,18 +4781,19 @@
 	ast_devstate_changed_literal(AST_DEVICE_UNKNOWN, name);
 
 	/* setstate used to conditionally report Newchannel; this is no more */
-	manager_event(EVENT_FLAG_CALL,
-		      "Newstate",
-		      "Channel: %s\r\n"
-		      "ChannelState: %d\r\n"
-		      "ChannelStateDesc: %s\r\n"
-		      "CallerIDNum: %s\r\n"
-		      "CallerIDName: %s\r\n"
-		      "Uniqueid: %s\r\n",
-		      chan->name, chan->_state, ast_state2str(chan->_state),
-		      S_OR(chan->cid.cid_num, ""),
-		      S_OR(chan->cid.cid_name, ""),
-		      chan->uniqueid);
+	if (chan->send_manager)   
+		manager_event(EVENT_FLAG_CALL,
+			      "Newstate",
+			      "Channel: %s\r\n"
+			      "ChannelState: %d\r\n"
+			      "ChannelStateDesc: %s\r\n"
+			      "CallerIDNum: %s\r\n"
+			      "CallerIDName: %s\r\n"
+			      "Uniqueid: %s\r\n",
+			      chan->name, chan->_state, ast_state2str(chan->_state),
+			      S_OR(chan->cid.cid_num, ""),
+			      S_OR(chan->cid.cid_name, ""),
+			      chan->uniqueid);
 
 	return 0;
 }
@@ -5014,20 +5026,21 @@
 */
 static void manager_bridge_event(int onoff, int type, struct ast_channel *c0, struct ast_channel *c1)
 {
-	manager_event(EVENT_FLAG_CALL, "Bridge",
-			"Bridgestate: %s\r\n"
-			"Bridgetype: %s\r\n"
-			"Channel1: %s\r\n"
-			"Channel2: %s\r\n"
-			"Uniqueid1: %s\r\n"
-			"Uniqueid2: %s\r\n"
-			"CallerID1: %s\r\n"
-			"CallerID2: %s\r\n",
-			onoff ? "Link" : "Unlink",
-			type == 1 ? "core" : "native",
-			c0->name, c1->name, c0->uniqueid, c1->uniqueid, 
-			S_OR(c0->cid.cid_num, ""), 
-			S_OR(c1->cid.cid_num, ""));
+	if (c0->send_manager)   
+		manager_event(EVENT_FLAG_CALL, "Bridge",
+				"Bridgestate: %s\r\n"
+				"Bridgetype: %s\r\n"
+				"Channel1: %s\r\n"
+				"Channel2: %s\r\n"
+				"Uniqueid1: %s\r\n"
+				"Uniqueid2: %s\r\n"
+				"CallerID1: %s\r\n"
+				"CallerID2: %s\r\n",
+				onoff ? "Link" : "Unlink",
+				type == 1 ? "core" : "native",
+				c0->name, c1->name, c0->uniqueid, c1->uniqueid, 
+				S_OR(c0->cid.cid_num, ""), 
+				S_OR(c1->cid.cid_num, ""));
 }
 
 static void update_bridge_vars(struct ast_channel *c0, struct ast_channel *c1)
@@ -5271,14 +5284,15 @@
 			ast_set_flag(c0, AST_FLAG_NBRIDGE);
 			ast_set_flag(c1, AST_FLAG_NBRIDGE);
 			if ((res = c0->tech->bridge(c0, c1, config->flags, fo, rc, to)) == AST_BRIDGE_COMPLETE) {
-				manager_event(EVENT_FLAG_CALL, "Unlink",
-					      "Channel1: %s\r\n"
-					      "Channel2: %s\r\n"
-					      "Uniqueid1: %s\r\n"
-					      "Uniqueid2: %s\r\n"
-					      "CallerID1: %s\r\n"
-					      "CallerID2: %s\r\n",
-					      c0->name, c1->name, c0->uniqueid, c1->uniqueid, S_OR(c0->cid.cid_num, "<unknown>"), S_OR(c1->cid.cid_num, "<unknown>"));
+			   	if (c0->send_manager)
+					manager_event(EVENT_FLAG_CALL, "Unlink",
+						      "Channel1: %s\r\n"
+						      "Channel2: %s\r\n"
+						      "Uniqueid1: %s\r\n"
+						      "Uniqueid2: %s\r\n"
+						      "CallerID1: %s\r\n"
+						      "CallerID2: %s\r\n",
+						      c0->name, c1->name, c0->uniqueid, c1->uniqueid, S_OR(c0->cid.cid_num, "<unknown>"), S_OR(c1->cid.cid_num, "<unknown>"));
 				ast_debug(1, "Returning from native bridge, channels: %s, %s\n", c0->name, c1->name);
 
 				ast_clear_flag(c0, AST_FLAG_NBRIDGE);
@@ -5343,14 +5357,15 @@
 	c0->_bridge = NULL;
 	c1->_bridge = NULL;
 
-	manager_event(EVENT_FLAG_CALL, "Unlink",
-		      "Channel1: %s\r\n"
-		      "Channel2: %s\r\n"
-		      "Uniqueid1: %s\r\n"
-		      "Uniqueid2: %s\r\n"
-		      "CallerID1: %s\r\n"
-		      "CallerID2: %s\r\n",
-		      c0->name, c1->name, c0->uniqueid, c1->uniqueid, S_OR(c0->cid.cid_num, "<unknown>"), S_OR(c1->cid.cid_num, "<unknown>"));
+	if (c0->send_manager)   
+		manager_event(EVENT_FLAG_CALL, "Unlink",
+			      "Channel1: %s\r\n"
+			      "Channel2: %s\r\n"
+			      "Uniqueid1: %s\r\n"
+			      "Uniqueid2: %s\r\n"
+			      "CallerID1: %s\r\n"
+			      "CallerID2: %s\r\n",
+			      c0->name, c1->name, c0->uniqueid, c1->uniqueid, S_OR(c0->cid.cid_num, "<unknown>"), S_OR(c1->cid.cid_num, "<unknown>"));
 	ast_debug(1, "Bridge stops bridging channels %s and %s\n", c0->name, c1->name);
 
 	return res;
Index: main/pbx.c
===================================================================
--- main/pbx.c	(revision 187673)
+++ main/pbx.c	(working copy)
@@ -3672,15 +3672,16 @@
 					term_color(tmp3, passdata, COLOR_BRMAGENTA, 0, sizeof(tmp3)),
 					"in new stack");
 			}
-			manager_event(EVENT_FLAG_DIALPLAN, "Newexten",
-					"Channel: %s\r\n"
-					"Context: %s\r\n"
-					"Extension: %s\r\n"
-					"Priority: %d\r\n"
-					"Application: %s\r\n"
-					"AppData: %s\r\n"
-					"Uniqueid: %s\r\n",
-					c->name, c->context, c->exten, c->priority, app->name, passdata, c->uniqueid);
+			if (c->send_manager)	   
+				manager_event(EVENT_FLAG_DIALPLAN, "Newexten",
+						"Channel: %s\r\n"
+						"Context: %s\r\n"
+						"Extension: %s\r\n"
+						"Priority: %d\r\n"
+						"Application: %s\r\n"
+						"AppData: %s\r\n"
+						"Uniqueid: %s\r\n",
+						c->name, c->context, c->exten, c->priority, app->name, passdata, c->uniqueid);
 			return pbx_exec(c, app, passdata);	/* 0 on success, -1 on failure */
 		}
 	} else if (q.swo) {	/* not found here, but in another switch */
