https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101692
--- Comment #4 from Eugene Zhiganov <zed at lab127 dot karelia.ru> --- investigation continues... ---------------------------------- 'RX-98' deregistered 107 (esrc.Io) !!! esrc.EventSource.~this() : esrc.Io (owner RX-97) this @ 0x7f845328b680 <<< note addr !!! esrc.EventSource.~this() : esrc.Timer (owner RX-97) this @ 0x7f845328b6c0 ___!!!___edsm.StageMachine.~this(): RX-97 destroyed... .... ecap.EventQueue.wait, n = 1, event @ 7FFDBCE6712C, event source @ 0x7f845328b680 <<< // this address is invalid, object already destroyed by GC Segmentation fault ---------------------------------- 'RX-97' is a state machine instance. RX machines are kept in a pool. Slist is used as a stack/pool. RX machines put themselves into the pool upon entering some state. And it seems that since insertFront() method of Slist is not an implicit assignment operator, D's GC does not count reference in a list as a... reference. Oops. Does it mean, it's impossible to store references in lists only?