At least is a beginning. On Linux all tests and the modified test_descr.py pass. A few cases in test_descr.py are commented out, maybe they should be adjusted, reconstructed. For order disagreement situations: backup logic picking an element from the first non-empty list and removing it from all lists, where it appears, and just throwing a warning instead of an exception could be put where I set the exception now. Although in the long run people should learn to use consistent hiearchies anyway. PS: I was wondering how to get/reuse lst.remove(o) functionality from C, apart through PyObject_CallMethod...