Python3 port (non backward compatible).