Two things, but these should probably be tackled in another pull req:
1) The IOError is fine if it's descriptive, otherwise we should probably wrap it with a more useful message
2) We should codify this behavior by covering it in tests. It's not the first time it's been inadvertently changed.