> Or only the top level class can be pickled? Yes. Try this: import pickle class outer(object): class inner(object): pass oi = outer.inner() pickle.dumps(oi) You'll get a similar error message: pickle.PicklingError: Can't pickle <class '__main__.inner'>: it's not found as __main__.inner Ralf