Compatible with gcc4.7.2