Hello Using ESL found a memory leak problem valgrind --tool=memcheck --leak-check=full ./myprog output as follows ==6872== 29,986 (88 direct, 29,898 indirect) bytes in 1 blocks are definitely lost in loss record 401 of 408 ==6872== at 0x4A06AAA: malloc (vg_replace_malloc.c:291) ==6872== by 0x413941: esl_event_create_subclass (esl_event.c:179) ==6872== by 0x410DC3: esl_recv_event (esl.c:1245) ==6872== by 0x411675: esl_send_recv_timed (esl.c:1517) ==6872== by 0x411C1B: esl_execute (esl.c:555) ==6872== by 0x408758: CRBT::Route() (CRBT.cpp:42) ==6872== by 0x40A02F: DPL::route() (DPL.cpp:234) ==6872== by 0x40FCA8: mycallback(int, int, sockaddr_in*) (listener.cpp:47) ==6872== by 0x41032F: client_thread (esl.c:654) ==6872== by 0x413FC7: thread_launch (esl_threadmutex.c:74) ==6872== by 0x34CAA07850: start_thread (in /lib64/libpthread-2.12.so) ==6872== by 0x34CA6E890C: clone (in /lib64/libc-2.12.so) ==6872== LEAK SUMMARY: ==6872== definitely lost: 88 bytes in 1 blocks ==6872== indirectly lost: 29,898 bytes in 76 blocks ==6872== possibly lost: 550,082 bytes in 51 blocks ==6872== still reachable: 832,937 bytes in 840 blocks ==6872== suppressed: 0 bytes in 0 blocks ==6872== Reachable blocks (those to which a pointer was found) are not shown. ==6872== To see them, rerun with: --leak-check=full --show-leak-kinds=all Part of my code is as follows bool CRBT::Route() { string data = "ringback=file_string://"; data.append(FileName); esl_execute(handle, "set", data.c_str(), NULL); return true; } The OS version is Centos x86_64 6.3 The Freeswitch version is 1.2.13 Thanks for your help.