A good point. I had to implement another signal/slot connection to free the memory that was being allocated just prior to the signal being emited. The main reason I went down this path was because the signal needed to be emitted from a callback function inside a .dll. Passing the pointer through the signal/slot connection was a little messy but it got the required information across the .dll boundary to my application which would then emit another signal to tell the .dll code to free up the memory.

Out of interest I attempted to pass a Boost shared pointer through the connection but that didn't seem to work. Has anyone else tried passing a Boost::shared_ptr through a signal/slot connection?