Index: apps/app_macro.c =================================================================== --- apps/app_macro.c (revision 237965) +++ apps/app_macro.c (working copy) @@ -308,6 +308,13 @@ runningapp[0] = '\0'; runningdata[0] = '\0'; + if (strcmp(chan->exten, "h") == 0 && !inhangup) { + /* "h" should only ever be invoked from the main pbx.c loop, NOT from + * a Macro. */ + ast_log(LOG_ERROR, "The \"h\" extension should never be directly invoked from a Macro. Exiting to invoke \"h\" properly.\n"); + res = -1; + break; + } /* What application will execute? */ if (ast_rdlock_contexts()) { ast_log(LOG_WARNING, "Failed to lock contexts list\n");