Dear all, I have found some severe discrepancies between an objectified tree and its pickle-dump and -loaded cache. It might be reported somewhere but I could not find it. My original issue, if it interests anyone, was found in https://github.com/Capitains/MyCapytain/blob/improvement/buggy.sh as I was benchmarking the effect of pickle. This resulted in pickled object not having the same behavior as the original object (There is a loop in there which checks for sibling to reconstruct a partial tree. Pickled object would not stop "normally" and would get much more that original asked). The issue with the original code, which you can check out, is that it's a "big" codebase and some part of it is undocumented (I unfortunately forgot to document two or three functions as I pushed them and now find myself decrypting it). Most of all, it is a long loop and I am not sure how it would be easy to debug for people. But please if you wish, feel free to do so ;) To show the bug in a limited fashion, in a readable form, I made a repo there : https://github.com/PonteIneptique/test-lxml. It runs on the latest 3.6.4 of LXML on Python 3.5 (did not test on Python 2.7). When I loop over the same tree in three forms different (etree.parse, objectify, pickled objectify) the first and the second are alright but the third shows differences really quick (at a node level). I would love to know if this is an "expected" behavior (ie no focus has been set on checking pickled working, which I would totally understand) or if it is an unknown bug. Best Thibault