Merge 3.2 closes issue 13557
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 5254299..1cbe34a 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -413,7 +413,10 @@
    current scope.  If only *globals* is provided, it must be a dictionary, which
    will be used for both the global and the local variables.  If *globals* and
    *locals* are given, they are used for the global and local variables,
-   respectively.  If provided, *locals* can be any mapping object.
+   respectively.  If provided, *locals* can be any mapping object.  Remember
+   that at module level, globals and locals are the same dictionary. If exec
+   gets two separate objects as *globals* and *locals*, the code will be
+   executed as if it were embedded in a class definition.
 
    If the *globals* dictionary does not contain a value for the key
    ``__builtins__``, a reference to the dictionary of the built-in module
diff --git a/Misc/NEWS b/Misc/NEWS
index 298065e..823762c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -98,6 +98,12 @@
     * C frames that are garbage-collecting
     * C frames that are due to the invocation of a PyCFunction
 
+Documentation
+-------------
+
+- Issue #13557: Clarify effect of giving two different namespaces to exec or
+  execfile().
+
 Tests
 -----