Issue #9323: Fixed a bug in trace.py that resulted in loosing the name
of the script being traced.  Patch by Eli Bendersky.
diff --git a/Lib/trace.py b/Lib/trace.py
index 19fdbaa..077cdc1 100644
--- a/Lib/trace.py
+++ b/Lib/trace.py
@@ -797,12 +797,9 @@
                   ignoredirs=ignore_dirs, infile=counts_file,
                   outfile=counts_file, timing=timing)
         try:
-            fp = open(progname)
-            try:
-                script = fp.read()
-            finally:
-                fp.close()
-            t.run('exec(%r)' % (script,))
+            with open(progname) as fp:
+                code = compile(fp.read(), progname, 'exec')
+            t.run(code)
         except IOError as err:
             _err_exit("Cannot run file %r because: %s" % (sys.argv[0], err))
         except SystemExit:
diff --git a/Misc/NEWS b/Misc/NEWS
index ebca774..ef7988f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -473,6 +473,9 @@
 Library
 -------
 
+- Issue #9323: Fixed a bug in trace.py that resulted in loosing the
+  name of the script being traced.  Patch by Eli Bendersky.
+
 - Issue #9282: Fixed --listfuncs option of trace.py.  Thanks Eli
   Bendersky for the patch.
 
diff --git a/Misc/maintainers.rst b/Misc/maintainers.rst
index fd71f28..d1d8fcc 100644
--- a/Misc/maintainers.rst
+++ b/Misc/maintainers.rst
@@ -212,7 +212,7 @@
 tkinter             gpolo
 token               georg.brandl
 tokenize
-trace
+trace               alexander.belopolsky
 traceback           georg.brandl
 tty
 turtle              gregorlingl