diff --git a/main/pbx.c b/main/pbx.c
index f7ae5cd10a0cbb3c64144f409889d9ebfc049451..ff9a162d3e2ac117f607f0556d4f5bf15928e5d1 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -8378,8 +8378,10 @@ static int pbx_builtin_busy(struct ast_channel *chan, void *data)
 	ast_indicate(chan, AST_CONTROL_BUSY);
 	/* Don't change state of an UP channel, just indicate
 	   busy in audio */
-	if (chan->_state != AST_STATE_UP)
+	if (chan->_state != AST_STATE_UP) {
 		ast_setstate(chan, AST_STATE_BUSY);
+		ast_cdr_busy(chan->cdr);
+	}
 	wait_for_hangup(chan, data);
 	return -1;
 }