My friend just pointed this out to me a few minutes ago. Thanks for this, I had started my own a long time ago but got sick of getting permission errors so I gave it up. Seeing how the patching itself was coded should be fun :>
@everybody else: You should really thank him for this if you use it because coding the patching function is a bitch :P