Try use Swap instead of CopyFrom.
ActivityMapInfo = MapInfo; // Crash!!! ActivityMapInfo.CopyFrom(*MapInfo); // Crash!!! proto::message::MapInfo temp; // No problem tempMapInfo.CopyFrom(*MapInfo); ActivityMapInfo.Swap(&temp);