Hi Christian, I second your doubts. I think that the problem is a little more hidden. After I added some print statements into the library_init's constructor I could confirm that this function is called before the call of function_options::initialize() function, as it was intended. However, the initilaization of the const _num0 reference happens at some time later. Therefore it is undefined at the point of usage in the ex::construct_from_int(int i) call from function_options::initialize(). At the point of _num0 initialization the counter has already a value of count == 33. I still think that the problem lies in the initialization order of statics defined in different translation units. Unfortunately, I couldn't find an exact explanation of my guess. With best regards Johannes