Well, I've been doing this for so long I can't even set a date. Not only mentally, but also to a physical duck, a storm trooper figure, and a mug with my name .. go figure ..
When you have to articulate to explain your code, you change your mental state in a way you would need to understand the semantics, and not the structure you had of it, which in turn makes you approach it in a different way. Explain what every function (to a particular problem) does, and the params it receives, so you'll get a different view of it ..
Recently, we had the chance to be doing pair programming, or get some other guy to sit with you and read through your code with you, which is even better ..