Went back to the ugly exceptions for Python 2.5