diff --git a/bridges/bridge_softmix.c b/bridges/bridge_softmix.c
index 4e4adcb223935247c346e828165594fcf6dcd0a5..e5835f73275bf5c92a34906df957e496f8f1fec6 100644
--- a/bridges/bridge_softmix.c
+++ b/bridges/bridge_softmix.c
@@ -594,8 +594,10 @@ static void softmix_bridge_write_voice(struct ast_bridge *bridge, struct ast_bri
  */
 static int softmix_bridge_write_control(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel, struct ast_frame *frame)
 {
-/* BUGBUG need to look at channel roles to determine what to do with control frame. */
-	/*! \todo BUGBUG softmix_bridge_write_control() not written */
+	/*
+	 * XXX Softmix needs to use channel roles to determine what to
+	 * do with control frames.
+	 */
 	return 0;
 }
 
@@ -622,6 +624,11 @@ static int softmix_bridge_write(struct ast_bridge *bridge, struct ast_bridge_cha
 		return 0;
 	}
 
+	/*
+	 * XXX Softmix needs to use channel roles to determine who gets
+	 * what frame.  Possible roles: announcer, recorder, agent,
+	 * supervisor.
+	 */
 	switch (frame->frametype) {
 	case AST_FRAME_NULL:
 		/* "Accept" the frame and discard it. */
@@ -820,6 +827,10 @@ static int softmix_mixing_loop(struct ast_bridge *bridge)
 		goto softmix_cleanup;
 	}
 
+	/*
+	 * XXX Softmix needs to use channel roles to determine who gets
+	 * what audio mixed.
+	 */
 	while (!softmix_data->stop && bridge->num_active) {
 		struct ast_bridge_channel *bridge_channel;
 		int timeout = -1;
diff --git a/include/asterisk/bridge.h b/include/asterisk/bridge.h
index 3bcb1131af5c34a41c9db7fee3a9823124c995a6..9734907699d2c41411102888b12b741d795348f3 100644
--- a/include/asterisk/bridge.h
+++ b/include/asterisk/bridge.h
@@ -733,7 +733,6 @@ enum ast_bridge_optimization ast_bridges_allow_optimization(struct ast_bridge *c
  * \retval -1 on error.
  *
  * \note This API call is meant for internal bridging operations.
- * \note BUGBUG This may get moved.
  */
 int ast_bridge_queue_action(struct ast_bridge *bridge, struct ast_frame *action);
 
diff --git a/main/bridge.c b/main/bridge.c
index b53079552a35d748d1e74c40aae41526780c2d84..fc86c31f84b2e9597b0c8be53ff4e0478fb7ad23 100644
--- a/main/bridge.c
+++ b/main/bridge.c
@@ -2682,7 +2682,11 @@ void ast_bridge_technology_suspend(struct ast_bridge_technology *technology)
 
 void ast_bridge_technology_unsuspend(struct ast_bridge_technology *technology)
 {
-/* BUGBUG unsuspending a bridge technology probably needs to prod all existing bridges to see if they should start using it. */
+	/*
+	 * XXX We may want the act of unsuspending a bridge technology
+	 * to prod all existing bridges to see if they should start
+	 * using it.
+	 */
 	technology->suspended = 0;
 }
 
diff --git a/main/features.c b/main/features.c
index 85dd413023479b107e8dba50e9e91ce5c86e473e..7c53451fae2fe61e106568a91c9e520c9e7fd61c 100644
--- a/main/features.c
+++ b/main/features.c
@@ -1068,7 +1068,6 @@ int ast_bridge_call(struct ast_channel *chan, struct ast_channel *peer, struct a
 
 	ast_bridge_features_cleanup(&chan_features);
 
-/* BUGBUG this is used by Dial and FollowMe for CDR information.  By Queue for Queue stats like CDRs. */
 	if (res && config->end_bridge_callback) {
 		config->end_bridge_callback(config->end_bridge_callback_data);
 	}