diff --git a/channels/misdn_config.c b/channels/misdn_config.c
index 29723e17c926fca1831c8483ca7e787a01dd8e46..0a7109276c7b42e763e4c5404bf355dd7aab6481 100644
--- a/channels/misdn_config.c
+++ b/channels/misdn_config.c
@@ -790,8 +790,9 @@ void misdn_cfg_get_config_string (int port, enum misdn_cfg_elements elem, char*
 			else
 				iter = port_cfg[0][place].ml;
 			if (iter) {
-				for (; iter; iter = iter->next)
-					sprintf(tempbuf, "%s%s, ", tempbuf, iter->msn);
+				for (; iter; iter = iter->next) {
+					strncat(tempbuf, iter->msn, sizeof(tempbuf) - strlen(tempbuf) - 1);
+				}
 				tempbuf[strlen(tempbuf)-2] = 0;
 			}
 			snprintf(buf, bufsize, " -> msns: %s", *tempbuf ? tempbuf : "none");