Andrew, I haven't studied the problem here, but I bet it would be cured if you root._p_changed(), too. When you change the state of an instance, you must also repickle all instances with references to that instance.