PEP 3101: Completed string.Formatter class.  Reimplemented field_name to object transformation.
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 10a7427..0c84db0 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -683,28 +683,28 @@
         return _unicodeformatter_iterator(str);
 }
 
-/* sys_formatter_lookup is used to implement string.Formatter.vformat.
-   it takes an PEP 3101 "field name", args, and kwargs, and returns a
-   tuple (index, name, object).  see unicodeobject.c's
-   _unicodeformatter_lookup for details */
+/* sys_formatter_field_name_split is used to implement
+   string.Formatter.vformat.  it takes an PEP 3101 "field name", and
+   returns a tuple of (first, rest): "first", the part before the
+   first '.' or '['; and "rest", an iterator for the rest of the field
+   name.  see unicodeobjects' _unicode_formatter_field_name_split for
+   details */
 static PyObject *
-sys_formatter_lookup(PyObject *self, PyObject *args)
+sys_formatter_field_name_split(PyObject *self, PyObject *args)
 {
         PyObject *field_name;
-        PyObject *arg_args;
-        PyObject *kwargs;
 
-        if (!PyArg_ParseTuple(args, "OOO:_formatter_lookup", &field_name,
-                              &arg_args, &kwargs))
+        if (!PyArg_ParseTuple(args, "O:_formatter_field_name_split",
+                              &field_name))
                 return NULL;
 
         if (!PyUnicode_Check(field_name)) {
-                PyErr_SetString(PyExc_TypeError,
-                                "_formatter_lookup expects unicode object");
+                PyErr_SetString(PyExc_TypeError, "_formatter_field_name_split "
+                                "expects unicode object");
                 return NULL;
         }
 
-        return _unicodeformatter_lookup(field_name, arg_args, kwargs);
+        return _unicodeformatter_field_name_split(field_name);
 }
 
 
@@ -773,7 +773,8 @@
 	{"_current_frames", sys_current_frames, METH_NOARGS,
 	 current_frames_doc},
         {"_formatter_parser", sys_formatter_iterator, METH_VARARGS},
-        {"_formatter_lookup", sys_formatter_lookup, METH_VARARGS},
+        {"_formatter_field_name_split", sys_formatter_field_name_split,
+         METH_VARARGS},
 	{"displayhook",	sys_displayhook, METH_O, displayhook_doc},
 	{"exc_info",	sys_exc_info, METH_NOARGS, exc_info_doc},
 	{"excepthook",	sys_excepthook, METH_VARARGS, excepthook_doc},