Index: pbx/pbx_config.c =================================================================== --- pbx/pbx_config.c (revision 223694) +++ pbx/pbx_config.c (working copy) @@ -953,18 +953,18 @@ } } app = whole_exten; - if (app && (start = strchr(app, '(')) && (end = strrchr(app, ')'))) { - *start = *end = '\0'; - app_data = start + 1; - } else { - if (app) { + app_data = NULL; + if (app && iprior != PRIORITY_HINT) { + if ((start = strchr(app, '(')) && (end = strrchr(app, ')'))) { + *start = *end = '\0'; + app_data = start + 1; + } else { app_data = strchr(app, ','); if (app_data) { *app_data = '\0'; app_data++; } - } else - app_data = NULL; + } } if (!exten || !prior || !app || (!app_data && iprior != PRIORITY_HINT)) @@ -1491,8 +1491,8 @@ ipri = 0; } appl = S_OR(stringp, ""); - /* Find the first occurrence of '(' */ - if (!(firstp = strchr(appl, '('))) { + /* Find the first occurrence of '(', unless its a hint extension */ + if (ipri == PRIORITY_HINT || !(firstp = strchr(appl, '('))) { /* No arguments */ data = ""; } else {