Hello everyone. Thanks raymond for writing down a pure python version ;-) I did an initial port to RPython for experiments. The results (on large dicts only) are inconclusive - it's either a bit faster or a bit slower, depending what exactly you do. There is a possibility I messed something up too (there is a branch rdict-experiments in PyPy, in a very sorry state though). One effect we did not think about is that besides extra indirection, there is an issue with data locality - having to look in two different large lists seems to be a hit. Again, while I tried, the approach is not scientific at all, but unless someone points a clear flaw in the code (it's in pypy/rlib/dict.py in rdict-experiments branch), I'm probably abandoning this for now. Cheers, fijal