introduce test case to expose behavior
make _maprev() more consistent

This is an alternative to Paul's f60dd90 in pull request #14