Globals.h includes everything that is needed nearly everywhere, e.g., std::vector, std::string, std::ostringstream, etc. This is useful for rapid prototyping. Since also using directives (`using namespace std`) and using declarations (`using std::vector`) appear in Globals.h, non-predictable side effects show up in code that includes a header that, in turn, includes Globals.h somehow. For example, the identifier `vector` is already defined. Globals.h should be purified. Stroustrup 9.2.1 gives an explicit list of what should be used in a header file and what not. (`using` declarations do not show up in this list.) Replace using directives by using declarations, see http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-27.5 Rename .docs to .docs_ascii.