http://mibuso.com/blogs/davidmachanick/2015/06/22/nightmare-on-nav-street-codeunit-80-problems-and-solution/
I just spent some time redoing codeunit 80 into something closer to NAV coding standards.
I posted my sample code on my blog.
Please review and let me know what you think.
The problems with codeunit 80 and some of the other posting and processing codeunits are they are hard to follow, lock tables before they are needed and sometimes when they are not needed, and do the error checking as they go along, resulting in more table locks and more rollbacks than are needed.