Hmm nevermind. The param type had to be inout, but to do that the ctor itself has to be inout. Somehow I managed to put the inout specifier in the wrong place when testing, I did this: this(inout(void*) obj) { } inout which is not the same as this: this(inout(void*) obj) inout { } Damn specs. Anyway it's working ok now.