Ah, module names are put in a symbol table and compared by pointer identity.  Performing a copy breaks this.