hopefully better working version with regards to interrupts...
also included the patch to the kernel for optimize