diff --git a/main/dial.c b/main/dial.c
index 0955aad0499274219d97cea2e0703a7fcdd2d3e4..afee5eeca653f95aad316b8045bb768b2a8591c0 100644
--- a/main/dial.c
+++ b/main/dial.c
@@ -300,7 +300,7 @@ static int begin_dial_prerun(struct ast_dial_channel *channel, struct ast_channe
 	/* Copy device string over */
 	ast_copy_string(numsubst, channel->device, sizeof(numsubst));
 
-	if (ast_format_cap_count(cap)) {
+	if (cap && ast_format_cap_count(cap)) {
 		cap_request = cap;
 	} else if (chan) {
 		cap_request = ast_channel_nativeformats(chan);