Added (UNTESTED) support for C++03