diff --git a/cdr/cdr_csv.c b/cdr/cdr_csv.c
index ee3785fed806dfa31d43bd2ea2e89e0b1f499369..2a107fc684c0edf3b367a172095ba37897f0f4d8 100644
--- a/cdr/cdr_csv.c
+++ b/cdr/cdr_csv.c
@@ -338,7 +338,7 @@ static int csv_log(struct ast_cdr *cdr)
 	char buf[1024];
 
 	/* Don't create records for CDRs where dcontext = "hangup" */
-	if (!strcasecmp(cdr->dcontext, "hangup")) {
+	if (ast_strlen_zero(cdr->dcontext) || !strcasecmp(cdr->dcontext, "hangup") || ast_strlen_zero(cdr->dstchannel)) {
 		return 0;
 	}