Time machine experiment.  Use '__name__' as the special key (always
present) that refers to the section name.  Also added a (slightly)
better InterpolationError error message, which includes the raw
string.
diff --git a/Lib/ConfigParser.py b/Lib/ConfigParser.py
index f22306a..89e2d85 100644
--- a/Lib/ConfigParser.py
+++ b/Lib/ConfigParser.py
@@ -28,7 +28,7 @@
                                dictionary of intrinsic defaults.  The
                                keys must be strings, the values must
                                be appropriate for %()s string
-                               interpolation.  Note that `name' is
+                               interpolation.  Note that `__name__' is
                                always an intrinsic default; it's value
                                is the section's name.
 
@@ -87,10 +87,14 @@
         self.section = section
 
 class InterpolationError(Error):
-    def __init__(self, reference, option, section):
+    def __init__(self, reference, option, section, rawval):
         Error.__init__(self,
-                       "Bad value substitution: sect `%s', opt `%s', ref `%s'"
-                       % (section, option, reference))
+                       "Bad value substitution:\n"
+                       "\tsection: [%s]\n"
+                       "\toption : %s\n"
+                       "\tkey    : %s\n"
+                       "\trawval : %s\n"
+                       % (section, option, reference, rawval))
         self.reference = reference
         self.option = option
         self.section = section
@@ -198,7 +202,7 @@
         try:
             return rawval % d
         except KeyError, key:
-            raise InterpolationError(key, option, section)
+            raise InterpolationError(key, option, section, rawval)
 
     def __get(self, section, conv, option):
         return conv(self.get(section, option))
@@ -275,7 +279,7 @@
                     elif sectname == DEFAULTSECT:
                         cursect = self.__defaults
                     else:
-                        cursect = {}
+                        cursect = {'__name__': sectname}
                         self.__sections[sectname] = cursect
                     # So sections can't start with a continuation line
                     optname = None