Updated to work with Python 3.3