diff --git a/main/pbx.c b/main/pbx.c
index 71331b14a92312b1a1431fd14b49a86f9a4d79d5..72a2ffa2dfe284b17e22860865f3f65b412e81af 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -1555,7 +1555,7 @@ struct ast_exten *pbx_find_extension(struct ast_channel *chan,
 	score.total_specificity = 0;
 	score.exten = 0;
 	score.total_length = 0;
-	if (!tmp->pattern_tree)
+	if (!tmp->pattern_tree && tmp->root_tree)
 	{
 		create_match_char_tree(tmp);
 #ifdef NEED_DEBUG