diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c
index 4e1995e7b1aa9df55ce4f19af6ed7408d4b47388..f4e443cdd9045ad3e9d7014a4cae1a924d5d0fa7 100755
--- a/channels/chan_mgcp.c
+++ b/channels/chan_mgcp.c
@@ -872,7 +872,17 @@ static int mgcp_call(struct ast_channel *ast, char *dest, int timeout)
 	ast_mutex_lock(&sub->lock);
 	switch (p->hookstate) {
 	case MGCP_OFFHOOK:
-		snprintf(tone, sizeof(tone), "L/wt");
+		if (distinctive_ring && !ast_strlen_zero(distinctive_ring)) {
+			snprintf(tone, sizeof(tone), "L/wt%s", distinctive_ring);
+			if (mgcpdebug) {
+				ast_verbose(VERBOSE_PREFIX_3 "MGCP distinctive callwait %s\n", tone);
+			}
+		} else {
+			snprintf(tone, sizeof(tone), "L/wt");
+			if (mgcpdebug) {
+				ast_verbose(VERBOSE_PREFIX_3 "MGCP normal callwait %s\n", tone);
+			}
+		}
 		break;
 	case MGCP_ONHOOK:
 	default: