From 8be9a116175fbc5cea9d93e5e998af0df4cee23b Mon Sep 17 00:00:00 2001
From: Guido van Rossum <guido@python.org>
Date: Fri, 25 Apr 1997 19:52:29 +0000
Subject: Restore two features of the original 1.4 pickle:

- which_module() search __main__ last;

- load_inst() no longer checks that the classname really refers to a class.
---
 Lib/pickle.py | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/Lib/pickle.py b/Lib/pickle.py
index 29557e3..bc01c90 100644
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -128,7 +128,7 @@ the old value, not the modified one.  (XXX There are two problems here:
 I have no answers.  Garbage Collection may also become a problem here.)
 """
 
-__version__ = "1.7"                     # Code version
+__version__ = "1.8"                     # Code version
 
 from types import *
 from copy_reg import *
@@ -538,7 +538,8 @@ def whichmodule(cls, clsname):
     import sys
 
     for name, module in sys.modules.items():
-        if hasattr(module, clsname) and \
+	if name != '__main__' and \
+	    hasattr(module, clsname) and \
             getattr(module, clsname) is cls:
             break
     else:
@@ -677,9 +678,9 @@ class Unpickler:
         module = self.readline()[:-1]
         name = self.readline()[:-1]
         klass = self.find_class(module, name)
-	if (type(klass) is not ClassType):
-            raise SystemError, "Imported object %s from module %s is " \
-                               "not a class" % (name, module)
+## 	if (type(klass) is not ClassType):
+##             raise SystemError, "Imported object %s from module %s is " \
+##                                "not a class" % (name, module)
 
         value = apply(klass, args)
         self.append(value)
-- 
cgit v0.12

