diff --git a/python/helpers/pydev/_pydev_bundle/pydev_umd.py b/python/helpers/pydev/_pydev_bundle/pydev_umd.py
index 224676fa6fd4..b434fc6cd26c 100644
--- a/python/helpers/pydev/_pydev_bundle/pydev_umd.py
+++ b/python/helpers/pydev/_pydev_bundle/pydev_umd.py
@@ -156,7 +156,7 @@ def runfile(filename, args=None, wdir=None, is_module=False, global_vars=None):
__umd__.run(verbose=verbose)
if global_vars is None:
- m = save_main_module(filename)
+ m = save_main_module(filename, 'pydev_umd')
global_vars = m.__dict__
try:
global_vars['__builtins__'] = __builtins__
diff --git a/python/helpers/pydev/_pydevd_bundle/pydevd_utils.py b/python/helpers/pydev/_pydevd_bundle/pydevd_utils.py
index 755116c55c6f..d346ef149c51 100644
--- a/python/helpers/pydev/_pydevd_bundle/pydevd_utils.py
+++ b/python/helpers/pydev/_pydevd_bundle/pydevd_utils.py
@@ -13,19 +13,20 @@ import sys
from _pydev_bundle import pydev_log
-def save_main_module(file):
+def save_main_module(file, module_name):
# patch provided by: Scott Schlesier - when script is run, it does not
# use globals from pydevd:
# This will prevent the pydevd script from contaminating the namespace for the script to be debugged
# pretend pydevd is not the main module, and
# convince the file to be debugged that it was loaded as main
- original_main = sys.modules['__main__']
+ sys.modules[module_name] = sys.modules['__main__']
+ sys.modules[module_name].__name__ = module_name
from imp import new_module
m = new_module('__main__')
sys.modules['__main__'] = m
- if hasattr(original_main, '__loader__'):
- m.__loader__ = getattr(original_main, '__loader__')
+ if hasattr(sys.modules[module_name], '__loader__'):
+ m.__loader__ = getattr(sys.modules[module_name], '__loader__')
m.__file__ = file
return m
diff --git a/python/helpers/pydev/pydevconsole.py b/python/helpers/pydev/pydevconsole.py
index bc629b3eae05..d8ea988a3b8a 100644
--- a/python/helpers/pydev/pydevconsole.py
+++ b/python/helpers/pydev/pydevconsole.py
@@ -72,7 +72,7 @@ class InterpreterInterface(BaseInterpreterInterface):
self._input_error_printed = False
def save_main(self):
- m = save_main_module('')
+ m = save_main_module('', 'pydevconsole')
self.namespace = m.__dict__
try:
self.namespace['__builtins__'] = __builtins__
diff --git a/python/helpers/pydev/pydevd.py b/python/helpers/pydev/pydevd.py
index 1ee93092853a..c96745480cf2 100644
--- a/python/helpers/pydev/pydevd.py
+++ b/python/helpers/pydev/pydevd.py
@@ -1013,7 +1013,7 @@ class PyDB:
file = new_target
if globals is None:
- m = save_main_module(file)
+ m = save_main_module(file, 'pydevd')
globals = m.__dict__
try:
globals['__builtins__'] = __builtins__