diff --git a/UPGRADE.txt b/UPGRADE.txt
index 90aa4a3c70003b96653ba304acd962b4b67538bb..a876d07731b8b750eb4f0039b4c0836a7416203e 100644
--- a/UPGRADE.txt
+++ b/UPGRADE.txt
@@ -49,6 +49,11 @@ SIP
  - A new option "tonezone" for setting default tonezone for the channel driver
    or individual devices
 
+users.conf:
+ - A defined user with hasvoicemail=yes now finally uses a Gosub to stdexten
+   as documented in extensions.conf.sample since v1.6.0 instead of a Macro as
+   documented in v1.4.
+
 From 1.8 to 10:
 
 cel_pgsql:
diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c
index 91cfe04e958efdf6999110cc340a58592b86aa88..15b3cc80c43ac57c91bd4377d339d3c6f8656784 100644
--- a/pbx/pbx_config.c
+++ b/pbx/pbx_config.c
@@ -1743,8 +1743,8 @@ static void pbx_load_users(void)
 			ast_add_extension2(con, 0, cat, -1, NULL, NULL, iface, NULL, NULL, registrar);
 			/* If voicemail, use "stdexten" else use plain old dial */
 			if (hasvoicemail) {
-				snprintf(tmp, sizeof(tmp), "stdexten,%s,${HINT}", cat);
-				ast_add_extension2(con, 0, cat, 1, NULL, NULL, "Macro", strdup(tmp), ast_free_ptr, registrar);
+				snprintf(tmp, sizeof(tmp), "%s,stdexten(${HINT})", cat);
+				ast_add_extension2(con, 0, cat, 1, NULL, NULL, "Gosub", strdup(tmp), ast_free_ptr, registrar);
 			} else {
 				ast_add_extension2(con, 0, cat, 1, NULL, NULL, "Dial", strdup("${HINT}"), ast_free_ptr, registrar);
 			}