I finally got around to work on this and found a much shorter example to reproduce it: --- snip --- #!/usr/bin/tclsh package require TclCurl set multiHandle [curl::multiinit] set easyHandle [curl::init] $multiHandle addhandle $easyHandle $multiHandle removehandle $easyHandle --- snap --- In this example the segfault happens at a different place in the code, but the underlaying problem seems to be the same, which is a null pointer dereference in a linked list element.