Modified for GCC-4.7+ Compiling