diff --git a/channels/chan_features.c b/channels/chan_features.c
index 7c823e7861d9d7faf6f2673d398ea299edacff39..5fa1b03a6379b7654450751c65ecc00e0f9cb241 100755
--- a/channels/chan_features.c
+++ b/channels/chan_features.c
@@ -427,7 +427,7 @@ static struct ast_channel *features_request(const char *type, int format, void *
 	struct feature_pvt *p;
 	struct ast_channel *chan = NULL;
 	p = features_alloc(data, format);
-	if (!p->subs[SUB_REAL].owner)
+	if (p && !p->subs[SUB_REAL].owner)
 		chan = features_new(p, AST_STATE_DOWN, SUB_REAL);
 	return chan;
 }