From my perspective, comments should generally be limited to method level comments (javadoc or .net xml type comments) for the generation of documentation later and TODO comments. Beyond that I think in most cases commenting is superfluous, time-consuming, and slightly annoying. If you really think the person who comes behind you can't figure it out, then refactor it or at least put it in it's own method with a method level comment.