When using pickle with protocol 2 pickling a Storage object fails This is caused by the __getattr__ getting called to find the __getinitargs__ and __getnewargs__ methods. They dont exist in the dictionary so consequently they return None. Pickle then calls the None and consequently dies.
Implementing these methods in gluon.storage.Storage makes things all better def __getinitargs__(self): return () def __getnewargs__(self): return () --