Exit code is getting over written by ensure - and is not being forwarded to the controlling shell.

cause exit failure code to be passed through without overwriting it

for issue #123