Update from lunaryorn/blog@e5a7f480215c823e8f5b9b69207c5458fe17e5f6