I added the following method to the 2 subclasses of asyncore.dispatcher and asynchat.async_chat and now pickle works: def __getstate__(self): return Later I will probably modify this method so it returns something more interesting. Thanks for your help! I was confused because I am not sure what can be pickled or not.