Because software aborts are not always fixable by scripts. When they're not, it usually implies that there's something more serious going on-- usually a hardware issue, like your router is dying, NIC is faulty or your line to the ISP (including any ethernet cables) might be screwed up.
But if the script actually works, the software abort is likely due to a misconfigured mIRC or BNC that is suppressing anti-idle events. Basically, if the above script actually fixed your issue, you didn't *really* have the issue to begin with.
- argv on EFnet #mIRC
- "Life is a pointer to an integer without a cast"