diff --git a/channel.c b/channel.c
index 5cc58d0f9acafb29f412047cafb5aceb562ee705..a97f0e8450b27fa69e9ea467ca4814e8ddabef0e 100755
--- a/channel.c
+++ b/channel.c
@@ -1540,12 +1540,14 @@ struct ast_channel *ast_request(char *type, int format, void *data)
 				c = chan->requester(type, capabilities, data);
 			if (c) {
 //				ast_device_state_changed(c->name);
-				manager_event(EVENT_FLAG_CALL, "Newchannel",
-				"Channel: %s\r\n"
-				"State: %s\r\n"
-				"Callerid: %s\r\n"
-				"Uniqueid: %s\r\n",
-				c->name, ast_state2str(c->_state), c->callerid ? c->callerid : "<unknown>", c->uniqueid);
+				if (c->_state == AST_STATE_DOWN) {
+					manager_event(EVENT_FLAG_CALL, "Newchannel",
+					"Channel: %s\r\n"
+					"State: %s\r\n"
+					"Callerid: %s\r\n"
+					"Uniqueid: %s\r\n",
+					c->name, ast_state2str(c->_state), c->callerid ? c->callerid : "<unknown>", c->uniqueid);
+				}
 			}
 			return c;
 		}