Instead of using strdup, try this instead (I think it should work) decodingResult->result.dc = (const char*)"Test"; doing this it will call _CORBA_String_member& operator= (const char* s) which will make the copy. The need to cast "Test" as (const char*)is because by default string litteral are char* (and not const char*) with msvc compiler. Guy Trudel