There have been reports of QtCurve causing applications to hang or crash on exit, and I have certainly seen examples of that myself.
The main reason for such events appears to be delivery of signals to stale QtCurve::Style or plugin instances, or Qt accessing stale objects internally.
Some changes have already been made to reduce the chance such issues occur, this patch should help avoid even more.
The new features are that QtCurve now disconnects from receiving select signals when the shutdown phase starts (currently a signal signal only) and a registry allowing the style plugin to avoid leaving orphaned style instances after it has been deleted itself.
Implementation detail: the patch introduces a d pointer to a private subclass, currently containing only shutdown related private variables moved from the main class. Over time this private class could further unburden the main style class.