diff --git a/main/channel.c b/main/channel.c
index 017a812c4f4ccfa2bbcbcb70a37179b66272959b..b19c4c9299a92a478c98c6ddcfdea6d088dc5838 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -1362,7 +1362,7 @@ void ast_channel_free(struct ast_channel *chan)
 	ast_jb_destroy(chan);
 
 	if (chan->cdr) {
-		ast_cdr_detach(chan->cdr);
+		ast_cdr_discard(chan->cdr);
 		chan->cdr = NULL;
 	}