Considering that we're all constantly learning, we've all got to come across a point where we learn something just awesome that improves our code or parts of it significantly.
The question is, when you've learned some new technique, strategy or whatever, do your or should you go back to code that you know works, but could be so much better/maintainable/faster/generally improved and implement this new knowledge?
I understand the concept of "if it ain't broke, don't fix it" but when does that become losing pride in code you've already written and what does it say for refactoring.