Python 3 compatibility fixes