diff --git a/CHANGES b/CHANGES
index 36b65ef4b91dc33981c2c97593c791fc7628a875..b6ea58a8a5c2a7f2e4f9913feeef79191ac087ab 100644
--- a/CHANGES
+++ b/CHANGES
@@ -25,3 +25,5 @@ Changes since Asterisk 1.4-beta was branched:
      CallerIDNum is used for number and CallerIDName for name.
   * setinterfacevar option in queues.conf also now sets a variable
      called MEMBERNAME which contains the member's name.
+  * Added Masquerade manager event for when a masquerade happens between
+    two channels.
diff --git a/main/channel.c b/main/channel.c
index c1e3c0a58b85fab4181d67e4eae3bb645eac792b..605bb5b7ecabfb526fabc040bdcd468a01eea7a1 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -3215,6 +3215,9 @@ int ast_do_masquerade(struct ast_channel *original)
 		ast_log(LOG_DEBUG, "Actually Masquerading %s(%d) into the structure of %s(%d)\n",
 			clone->name, clone->_state, original->name, original->_state);
 
+	manager_event(EVENT_FLAG_CALL, "Masquerade", "Clone: %s\r\nCloneState: %s\r\nOriginal: %s\r\nOriginalState: %s\r\n",
+		      clone->name, ast_state2str(clone->_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
 	   channel's backend.   I'm not sure we're going to keep this function, because