diff --git a/Lib/cgitb.py b/Lib/cgitb.py
index 0f5f32c0fad..4f81271be3c 100644
--- a/Lib/cgitb.py
+++ b/Lib/cgitb.py
@@ -124,8 +124,9 @@ function calls leading up to the error, in the order they occurred.
'''
args, varargs, varkw, locals = inspect.getargvalues(frame)
call = ''
if func != '?':
- call = 'in ' + strong(pydoc.html.escape(func)) + \
- inspect.formatargvalues(args, varargs, varkw, locals,
+ call = 'in ' + strong(pydoc.html.escape(func))
+ if func != "":
+ call += inspect.formatargvalues(args, varargs, varkw, locals,
formatvalue=lambda value: '=' + pydoc.html.repr(value))
highlight = {}
@@ -207,8 +208,9 @@ function calls leading up to the error, in the order they occurred.
args, varargs, varkw, locals = inspect.getargvalues(frame)
call = ''
if func != '?':
- call = 'in ' + func + \
- inspect.formatargvalues(args, varargs, varkw, locals,
+ call = 'in ' + func
+ if func != "":
+ call += inspect.formatargvalues(args, varargs, varkw, locals,
formatvalue=lambda value: '=' + pydoc.text.repr(value))
highlight = {}
diff --git a/Misc/NEWS.d/next/Library/2018-05-01-22-33-14.bpo-33311.8YPB-k.rst b/Misc/NEWS.d/next/Library/2018-05-01-22-33-14.bpo-33311.8YPB-k.rst
new file mode 100644
index 00000000000..d0218de373c
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2018-05-01-22-33-14.bpo-33311.8YPB-k.rst
@@ -0,0 +1,2 @@
+Text and html output generated by cgitb does not display parentheses if the
+current call is done directly in the module. Patch by Stéphane Blondon.