diff --git a/include/asterisk/pbx.h b/include/asterisk/pbx.h
index eccae45db50c2ac3995acc06f534c398061c3c5a..e56819cb0585e40a29794b74b76dcc70b89e4e76 100644
--- a/include/asterisk/pbx.h
+++ b/include/asterisk/pbx.h
@@ -723,6 +723,7 @@ int ast_pbx_outgoing_app(const char *type, int format, void *data, int timeout,
 /* Functions for returning values from structures */
 const char *ast_get_context_name(struct ast_context *con);
 const char *ast_get_extension_name(struct ast_exten *exten);
+struct ast_context *ast_get_extension_context(struct ast_exten *exten);
 const char *ast_get_include_name(struct ast_include *include);
 const char *ast_get_ignorepat_name(struct ast_ignorepat *ip);
 const char *ast_get_switch_name(struct ast_sw *sw);
diff --git a/pbx.c b/pbx.c
index 296e54c217c801b3736cf955f91a4b4b6ba353da..640b9e6c94a00497b73cc4f9ca5e47bd03bd3242 100644
--- a/pbx.c
+++ b/pbx.c
@@ -2974,8 +2974,10 @@ static int handle_show_hints(int fd, int argc, char *argv[])
 		watchers = 0;
 		for (watcher = hint->callbacks; watcher; watcher = watcher->next)
 			watchers++;
-		ast_cli(fd, "   %-20.20s: %-20.20s  State:%-15.15s Watchers %2d\n",
-			ast_get_extension_name(hint->exten), ast_get_extension_app(hint->exten),
+		ast_cli(fd, "   %-20.20s@%20s: %-20.20s  State:%-15.15s Watchers %2d\n",
+			ast_get_extension_name(hint->exten),
+			ast_get_context_name(ast_get_extension_context(hint->exten)),
+			ast_get_extension_app(hint->exten),
 			ast_extension_state2str(hint->laststate), watchers);
 		num++;
 	}
@@ -5893,6 +5895,11 @@ const char *ast_get_context_name(struct ast_context *con)
 	return con ? con->name : NULL;
 }
 
+struct ast_context *ast_get_extension_context(struct ast_exten *exten)
+{
+	return exten ? exten->parent : NULL;
+}
+
 const char *ast_get_extension_name(struct ast_exten *exten)
 {
 	return exten ? exten->exten : NULL;