Last crasher bug I fixed was due to not using Playlist::clearItem() to remove a PlaylistItem. I think it should always be possible to call delete on a PlaylistItem pointer and the Right Thing happens, so do a bit of refactoring to ensure that what happens in clearItem() is performed from the PlaylistItem dtor instead of running the PlaylistItem dtor from clearItem.