Updated for Python 3 compatibility.