2.32 is released. For Windows, I replaced Sleep with WaitForSingleObject on a timer. In theory this should greatly improve both performance and consistency. Please let me know if you find this to be the case. For reasons I don't understand, it wouldn't compile CreateWaitableTimer and SetWaitableTimer until I globally defined _WIN32_WINNT=0x0410 . I shouldn't have to do this because it should already be done from windows.h - but it wasn't. If anyone knows of a resolution to this issue please let me know. In the meantime, if you use the source directly you will also need to define that in your project settings if you want to use WaitForSingleObject. Otherwise, it will revert to using Sleep. There is a #pragma message that indicates which you are using when you build. The pre-built lib and dll uses WaitForSingleObject. Linux continues to use Sleep. If anyone knows the Linux equivalent please let me know (or better yet - the code). This version also fixes a variety of problems with setting the password. As a side note, I attempted to fix IO completion ports but due to structural changes I wasn't able to get it to work within a reasonable amount of effort. In a future version I will re-evaulate the changes needed to get it to work again as well as investigate if it offers any performance benefit over the current optimized system.