Fixes

else path does not compile with 1.56 and -std=c++03. This code path seems to work in all cases.