Document general mappings for the locals argument for exec and execfile().
diff --git a/Doc/lib/libfuncs.tex b/Doc/lib/libfuncs.tex
index b3d3d30..ec6a66c 100644
--- a/Doc/lib/libfuncs.tex
+++ b/Doc/lib/libfuncs.tex
@@ -343,13 +343,14 @@
   and does not create a new module.\footnote{It is used relatively
   rarely so does not warrant being made into a statement.}
 
-  The arguments are a file name and two optional dictionaries.  The
-  file is parsed and evaluated as a sequence of Python statements
-  (similarly to a module) using the \var{globals} and \var{locals}
-  dictionaries as global and local namespace.  If the \var{locals}
-  dictionary is omitted it defaults to the \var{globals} dictionary.
-  If both dictionaries are omitted, the expression is executed in the
-  environment where \function{execfile()} is called.  The return value is
+  The arguments are a file name and two optional dictionaries.  The file is
+  parsed and evaluated as a sequence of Python statements (similarly to a
+  module) using the \var{globals} and \var{locals} dictionaries as global and
+  local namespace. If provided, \var{locals} can be any mapping object.
+  \versionchanged[formerly \var{locals} was required to be a dictionary]{2.4}
+  If the \var{locals} dictionary is omitted it defaults to the \var{globals}
+  dictionary. If both dictionaries are omitted, the expression is executed in
+  the environment where \function{execfile()} is called.  The return value is
   \code{None}.
 
   \warning{The default \var{locals} act as described for function
diff --git a/Doc/ref/ref6.tex b/Doc/ref/ref6.tex
index a389176..1017aca 100644
--- a/Doc/ref/ref6.tex
+++ b/Doc/ref/ref6.tex
@@ -873,8 +873,9 @@
 in the current scope.  If only the first expression after \keyword{in}
 is specified, it should be a dictionary, which will be used for both
 the global and the local variables.  If two expressions are given,
-both must be dictionaries and they are used for the global and local
-variables, respectively.
+they are used for the global and local variables, respectively.
+If provided, \var{locals} can be any mapping object.
+\versionchanged[formerly \var{locals} was required to be a dictionary]{2.4}
 
 As a side effect, an implementation may insert additional keys into
 the dictionaries given besides those corresponding to variable names