tested and working on linux-3.13.5