Update from lunaryorn/blog@bb6d8fe64a0c1d160bdb8465aa32567aac1ece78