Make sets.py compatible with Py2.2
diff --git a/Lib/sets.py b/Lib/sets.py
index ebe62c6..32eb0aa 100644
--- a/Lib/sets.py
+++ b/Lib/sets.py
@@ -54,9 +54,27 @@
 # - Raymond Hettinger added a number of speedups and other
 #   improvements.
 
+from __future__ import generators
+try:
+    from itertools import ifilter, ifilterfalse
+except ImportError:
+    # Code to make the module run under Py2.2
+    def ifilter(predicate, iterable):
+        if predicate is None:
+            def predicate(x):
+                return x
+        for x in iterable:
+            if predicate(x):
+                yield x
+    def ifilterfalse(predicate, iterable):
+        if predicate is None:
+            def predicate(x):
+                return x
+        for x in iterable:
+            if not predicate(x):
+                yield x
 
 __all__ = ['BaseSet', 'Set', 'ImmutableSet']
-from itertools import ifilter, ifilterfalse
 
 class BaseSet(object):
     """Common base class for mutable and immutable sets."""
diff --git a/Misc/NEWS b/Misc/NEWS
index 63827d2..a3a62be 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -30,6 +30,8 @@
 Library
 -------
 
+- sets.py now runs under Py2.2
+
 - random.seed() with no arguments or None uses time.time() as a default
   seed.  Modified to match Py2.2 behavior and use fractional seconds so
   that successive runs are more likely to produce different sequences.