ConfigParser._interpolate():  Pass the missing key to the
    InterpolationError constructor, not the KeyError exception itself.
    (Caught by the new InterpolationError test.)

SafeConfigParser._interpolate_some():  Pass the right number of
    arguments to the InterpolationError constructor.
    (Caught by pychecker.)
diff --git a/Lib/ConfigParser.py b/Lib/ConfigParser.py
index 24a4f23..7c2eba5 100644
--- a/Lib/ConfigParser.py
+++ b/Lib/ConfigParser.py
@@ -554,8 +554,8 @@
             if value.find("%(") != -1:
                 try:
                     value = value % vars
-                except KeyError, key:
-                    raise InterpolationError(key, option, section, rawval)
+                except KeyError, e:
+                    raise InterpolationError(e[0], option, section, rawval)
             else:
                 break
         if value.find("%(") != -1:
@@ -599,8 +599,7 @@
                 try:
                     v = map[var]
                 except KeyError:
-                    raise InterpolationError(
-                        "no value found for %r" % var)
+                    raise InterpolationError(var, option, section, rest)
                 if "%" in v:
                     self._interpolate_some(option, accum, v,
                                            section, map, depth + 1)