This is the third time I check in this change :-(

Don't use assignments into inst.__dict__ to restore instance
variables; use setattr() instead.
diff --git a/Lib/pickle.py b/Lib/pickle.py
index a481fc7..682440d 100644
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -522,9 +522,8 @@
 		try:
 			setstate = inst.__setstate__
 		except AttributeError:
-		        instdict = inst.__dict__
 			for key in value.keys():
-				instdict[key] = value[key]
+				setattr(inst, key, value[key])
 		else:
 			setstate(value)
 	dispatch[BUILD] = load_build