NH-3704

https://nhibernate.jira.com/browse/NH-3704
With unit tests
I understand your aspiration to implement changes with fewer possible code changes, but I want to have this properly implemented