Based on 85279adad6 (diff-c243a4d5a7789c35057282ee780df3d5)
85279adad6 (diff-c243a4d5a7789c35057282ee780df3d5)