diff --git a/Lib/test/libregrtest/cmdline.py b/Lib/test/libregrtest/cmdline.py
index 19c52a2..e55e53f 100644
--- a/Lib/test/libregrtest/cmdline.py
+++ b/Lib/test/libregrtest/cmdline.py
@@ -295,8 +295,6 @@
         parser.error("-T and -j don't go together!")
     if ns.use_mp and ns.findleaks:
         parser.error("-l and -j don't go together!")
-    if ns.use_mp and ns.memlimit:
-        parser.error("-M and -j don't go together!")
     if ns.failfast and not (ns.verbose or ns.verbose3):
         parser.error("-G/--failfast needs either -v or -W")
 
diff --git a/Lib/test/libregrtest/main.py b/Lib/test/libregrtest/main.py
index df2329f..e685970 100644
--- a/Lib/test/libregrtest/main.py
+++ b/Lib/test/libregrtest/main.py
@@ -354,14 +354,15 @@
     def main(self, tests=None, **kwargs):
         self.ns = self.parse_args(kwargs)
 
-        setup_python(self.ns)
-
         if self.ns.slaveargs is not None:
             from test.libregrtest.runtest_mp import run_tests_slave
             run_tests_slave(self.ns.slaveargs)
+
         if self.ns.wait:
             input("Press any key to continue...")
 
+        setup_python(self.ns)
+
         self.find_tests(tests)
         self.run_tests()
 
diff --git a/Lib/test/libregrtest/runtest_mp.py b/Lib/test/libregrtest/runtest_mp.py
index 74424c1..47393aa 100644
--- a/Lib/test/libregrtest/runtest_mp.py
+++ b/Lib/test/libregrtest/runtest_mp.py
@@ -13,7 +13,8 @@
     print("Multiprocess option requires thread support")
     sys.exit(2)
 
-from test.libregrtest.runtest import runtest, INTERRUPTED, CHILD_ERROR
+from test.libregrtest.runtest import runtest_ns, INTERRUPTED, CHILD_ERROR
+from test.libregrtest.setup import setup_python
 
 
 # Minimum duration of a test to display its duration or to mention that
@@ -58,11 +59,10 @@
     ns_dict, testname = json.loads(slaveargs)
     ns = types.SimpleNamespace(**ns_dict)
 
-    if ns.huntrleaks:
-        unittest.BaseTestSuite._cleanup = False
+    setup_python(ns)
 
     try:
-        result = runtest_ns(testname,  ns.verbose, ns.quiet, ns,
+        result = runtest_ns(testname,  ns.verbose, ns,
                             use_resources=ns.use_resources,
                             output_on_failure=ns.verbose3,
                             failfast=ns.failfast,
diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
index 54bbfe4..c277e10 100644
--- a/Lib/test/test_regrtest.py
+++ b/Lib/test/test_regrtest.py
@@ -214,7 +214,6 @@
                 self.checkError([opt, 'foo'], 'invalid int value')
                 self.checkError([opt, '2', '-T'], "don't go together")
                 self.checkError([opt, '2', '-l'], "don't go together")
-                self.checkError([opt, '2', '-M', '4G'], "don't go together")
 
     def test_coverage(self):
         for opt in '-T', '--coverage':
