Update from lunaryorn/blog@83c757640d395d21c4d608c2b9d4d3cc78ea5956