updated for version 7.3.911
Problem:    Python: Access to Vim variables is not so easy.
Solution:   Define vim.vars and vim.vvars. (ZyX)
diff --git a/src/if_python.c b/src/if_python.c
index 547df3a..6e1cb0c 100644
--- a/src/if_python.c
+++ b/src/if_python.c
@@ -1330,6 +1330,7 @@
 {
     PyObject *mod;
     PyObject *dict;
+    PyObject *tmp;
     /* The special value is removed from sys.path in Python_Init(). */
     static char *(argv[2]) = {"/must>not&exist/foo", NULL};
 
@@ -1353,6 +1354,12 @@
     PyDict_SetItemString(dict, "buffers", (PyObject *)(void *)&TheBufferList);
     PyDict_SetItemString(dict, "current", (PyObject *)(void *)&TheCurrent);
     PyDict_SetItemString(dict, "windows", (PyObject *)(void *)&TheWindowList);
+    tmp = DictionaryNew(&globvardict);
+    PyDict_SetItemString(dict, "vars",    tmp);
+    Py_DECREF(tmp);
+    tmp = DictionaryNew(&vimvardict);
+    PyDict_SetItemString(dict, "vvars",   tmp);
+    Py_DECREF(tmp);
     PyDict_SetItemString(dict, "VAR_LOCKED",    PyInt_FromLong(VAR_LOCKED));
     PyDict_SetItemString(dict, "VAR_FIXED",     PyInt_FromLong(VAR_FIXED));
     PyDict_SetItemString(dict, "VAR_SCOPE",     PyInt_FromLong(VAR_SCOPE));