Logged In: YES user_id=31435 Oh. fudge. I'd like to say that since noload() is wholly undocumented, tough luck . The GLOBAL and NEWOBJ opcodes just stick None on the stack in noload()-mode. That's why the test script yields TypeError: object does not support item assignment (SETITEM is griping about the None noload()'s NEWOBJ left behind). I agree your patch fixes that, and offhand can't think of a more principled approach. Assigning to Jim in case he can. In any case, please put the marker() call on a different line and check its return value. I know some other code in cPickle takes the shortcut you're using, but it's not a good idea to grow more code like that (it changes what would have been a clear ""could not find MARK" error into a more mysterious "unpickling stack underflow" error). It would be good to get this fixed in 2.3.5 too.
Logged In: YES user_id=31435 Yup, good catch on append/appends too. Moral dilemma: should undocumented features be tested? That's a slippery slope in cPickle .
Confirmed on trunk, traceback: Traceback (most recent call last): File "~/Desktop/noload.py", line 12, in u.noload() TypeError: 'NoneType' object does not support item assignment