Update from lunaryorn/blog@5a2659269984413574e63d9c0261eb4eafd67ddd