Update from lunaryorn/blog@260d12f23e079e428943108d2e2751de08625b25