Index: main/features.c =================================================================== --- main/features.c (revision 131203) +++ main/features.c (working copy) @@ -1498,14 +1498,6 @@ { struct feature_group_exten *fge; - if (!(fge = ast_calloc(1, sizeof(*fge)))) - return; - - if (ast_string_field_init(fge, 128)) { - ast_free(fge); - return; - } - if (!fg) { ast_log(LOG_NOTICE, "You didn't pass a group!\n"); return; @@ -1516,8 +1508,16 @@ return; } - ast_string_field_set(fge, exten, (ast_strlen_zero(exten) ? feature->exten : exten)); + if (!(fge = ast_calloc(1, sizeof(*fge)))) + return; + if (ast_string_field_init(fge, 128)) { + ast_free(fge); + return; + } + + ast_string_field_set(fge, exten, S_OR(exten, feature->exten)); + fge->feature = feature; AST_LIST_INSERT_HEAD(&fg->features, fge, entry);