diff --git a/include/asterisk/bridging.h b/include/asterisk/bridging.h
index 2fde0488b93d30717cd62e1cd24a8b6ba3fbbba4..e03bfd0cdbb65e4d74b5dac237915aa27196d050 100644
--- a/include/asterisk/bridging.h
+++ b/include/asterisk/bridging.h
@@ -1653,7 +1653,7 @@ enum ast_after_bridge_cb_reason {
 	AST_AFTER_BRIDGE_CB_REASON_REPLACED,
 	/*! The callback was removed because of a masquerade. (fixup) */
 	AST_AFTER_BRIDGE_CB_REASON_MASQUERADE,
-	/*! The channel departed bridge. */
+	/*! The channel was departed from the bridge. */
 	AST_AFTER_BRIDGE_CB_REASON_DEPART,
 	/*! Was explicitly removed by external code. */
 	AST_AFTER_BRIDGE_CB_REASON_REMOVED,
diff --git a/main/bridging.c b/main/bridging.c
index 5dcd580f0a7854f4bfa53ba9c5c3063ec81d89a4..2dc2ec124d8fb3ad129ff93f2e145dec0a5320d0 100644
--- a/main/bridging.c
+++ b/main/bridging.c
@@ -3309,16 +3309,18 @@ int ast_after_bridge_callback_set(struct ast_channel *chan, ast_after_bridge_cb
 }
 
 const char *reason_strings[] = {
-	[AST_AFTER_BRIDGE_CB_REASON_DESTROY] = "Bridge Destroyed",
-	[AST_AFTER_BRIDGE_CB_REASON_REPLACED] = "Channel replaced",
+	[AST_AFTER_BRIDGE_CB_REASON_DESTROY] = "Channel destroyed (hungup)",
+	[AST_AFTER_BRIDGE_CB_REASON_REPLACED] = "Callback was replaced",
 	[AST_AFTER_BRIDGE_CB_REASON_MASQUERADE] = "Channel masqueraded",
-	[AST_AFTER_BRIDGE_CB_REASON_DEPART] = "Channel departed",
-	[AST_AFTER_BRIDGE_CB_REASON_REMOVED] = "Channel removed",
+	[AST_AFTER_BRIDGE_CB_REASON_DEPART] = "Channel was departed from bridge",
+	[AST_AFTER_BRIDGE_CB_REASON_REMOVED] = "Callback was removed",
 };
 
 const char *ast_after_bridge_cb_reason_string(enum ast_after_bridge_cb_reason reason)
 {
-	if (reason < AST_AFTER_BRIDGE_CB_REASON_DESTROY || reason > AST_AFTER_BRIDGE_CB_REASON_REMOVED) {
+	if (reason < AST_AFTER_BRIDGE_CB_REASON_DESTROY
+		|| AST_AFTER_BRIDGE_CB_REASON_REMOVED < reason
+		|| !reason_strings[reason]) {
 		return "Unknown";
 	}