diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 0952ab5fede2ef3ee48123aecedf6d1388a132e6..0f3c9e181f657feac537447aa442ed66ae58919b 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -1446,8 +1446,7 @@ SIPVoIPLink::dtmfSipInfo (SIPCall *call, char code)
 {
 
     int duration;
-    const int body_len = 1000;
-    char *dtmf_body;
+    char dtmf_body[1000];
     pj_status_t status;
     pjsip_tx_data *tdata;
     pj_str_t methodName, content;
@@ -1466,10 +1465,6 @@ SIPVoIPLink::dtmfSipInfo (SIPCall *call, char code)
 
     duration = Manager::instance().voipPreferences.getPulseLength();
 
-    dtmf_body = new char[body_len];
-
-    snprintf (dtmf_body, body_len - 1, "Signal=%c\r\nDuration=%d\r\n", code, duration);
-
     pj_strdup2 (tmp_pool, &methodName, "INFO");
     pjsip_method_init_np (&method, &methodName);
 
@@ -1486,6 +1481,8 @@ SIPVoIPLink::dtmfSipInfo (SIPCall *call, char code)
 
     pj_strdup2 (tmp_pool, &ctype.subtype, "dtmf-relay");
 
+    snprintf (dtmf_body, sizeof dtmf_body - 1, "Signal=%c\r\nDuration=%d\r\n", code, duration);
+
     /* Create "application/dtmf-relay" message body. */
     pj_strdup2 (tmp_pool, &content, dtmf_body);