As a follow up to my previous email regarding UNICODE problems, I tried the following on a whim: int _tmain(int argc, _TCHAR* argv[]) { try { static char* argvv[] = { "help" }; po::options_description desc("Allowed options"); desc.add_options() ("help", "produce help message") ("set,s", po::value< std::vectorstd::string >(), "Set one or more node values, overriding stored value in config file") ; po::variables_map vm; po::store(po::parse_command_line(argc, argvv, desc), vm); The program above compiles. If I switch from argvv (ANSI) to argv (UNICODE) in parse_command_line(), I get all those linker errors. The docs seem to indicate that UNICODE parsing is supported, so what am I missing? Thanks, Scott