Not a compiler bug. A bug in the implementation of std.signals. > > writeln(f.prop);
Property is a struct and thus it is passed by value, which means that the signal is copied. Signal does not define a postblit constructor, because it was intended to be used in classes, so a bitwise copy is done. Meaning that the internal allocated storage is freed twice. If used in a class there is no issue with copying a signal, because it is a mixin and does not exist on its own and an object has reference semantics. I am already working on a replacement for std.signals which fixes some of its shortcomings. It will also fix this one. Best regards, Robert
