diff --git a/Include/pystate.h b/Include/pystate.h
index fe14832..2c70505 100644
--- a/Include/pystate.h
+++ b/Include/pystate.h
@@ -232,6 +232,7 @@
         .install_signal_handlers = -1, \
         .ignore_environment = -1, \
         .use_hash_seed = -1, \
+        .tracemalloc = -1, \
         .coerce_c_locale = -1, \
         .utf8_mode = -1, \
         .argc = -1, \
diff --git a/Lib/test/test_tracemalloc.py b/Lib/test/test_tracemalloc.py
index b0a0e1b..491cd05 100644
--- a/Lib/test/test_tracemalloc.py
+++ b/Lib/test/test_tracemalloc.py
@@ -15,6 +15,7 @@
 
 
 EMPTY_STRING_SIZE = sys.getsizeof(b'')
+INVALID_NFRAME = (-1, 2**30)
 
 
 def get_frames(nframe, lineno_delta):
@@ -833,6 +834,13 @@
         stdout = stdout.rstrip()
         self.assertEqual(stdout, b'False')
 
+    def test_env_var_disabled(self):
+        # tracing at startup
+        code = 'import tracemalloc; print(tracemalloc.is_tracing())'
+        ok, stdout, stderr = assert_python_ok('-c', code, PYTHONTRACEMALLOC='0')
+        stdout = stdout.rstrip()
+        self.assertEqual(stdout, b'False')
+
     def test_env_var_enabled_at_startup(self):
         # tracing at startup
         code = 'import tracemalloc; print(tracemalloc.is_tracing())'
@@ -861,7 +869,7 @@
 
 
     def test_env_var_invalid(self):
-        for nframe in (-1, 0, 2**30):
+        for nframe in INVALID_NFRAME:
             with self.subTest(nframe=nframe):
                 self.check_env_var_invalid(nframe)
 
@@ -889,7 +897,7 @@
         self.fail(f"unexpeced output: {stderr!a}")
 
     def test_sys_xoptions_invalid(self):
-        for nframe in (-1, 0, 2**30):
+        for nframe in INVALID_NFRAME:
             with self.subTest(nframe=nframe):
                 self.check_sys_xoptions_invalid(nframe)
 
diff --git a/Misc/NEWS.d/next/Library/2018-07-25-19-02-39.bpo-34228.0Ibztw.rst b/Misc/NEWS.d/next/Library/2018-07-25-19-02-39.bpo-34228.0Ibztw.rst
new file mode 100644
index 0000000..729c0c4
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2018-07-25-19-02-39.bpo-34228.0Ibztw.rst
@@ -0,0 +1,3 @@
+tracemalloc: PYTHONTRACEMALLOC=0 environment variable and -X tracemalloc=0
+command line option are now allowed to disable explicitly tracemalloc at
+startup.
diff --git a/Modules/main.c b/Modules/main.c
index a16c340..e116dd0 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -1726,10 +1726,14 @@
     int nframe;
     int valid;
 
+    if (config->tracemalloc >= 0) {
+        return _Py_INIT_OK();
+    }
+
     const char *env = config_get_env_var(config, "PYTHONTRACEMALLOC");
     if (env) {
         if (!pymain_str_to_int(env, &nframe)) {
-            valid = (nframe >= 1);
+            valid = (nframe >= 0);
         }
         else {
             valid = 0;
@@ -1746,7 +1750,7 @@
         const wchar_t *sep = wcschr(xoption, L'=');
         if (sep) {
             if (!pymain_wstr_to_int(sep + 1, &nframe)) {
-                valid = (nframe >= 1);
+                valid = (nframe >= 0);
             }
             else {
                 valid = 0;
@@ -2249,17 +2253,22 @@
 
     config_init_locale(config);
 
-    /* Signal handlers are installed by default */
-    if (config->install_signal_handlers < 0) {
-        config->install_signal_handlers = 1;
-    }
-
     if (config->_install_importlib) {
         err = _PyCoreConfig_InitPathConfig(config);
         if (_Py_INIT_FAILED(err)) {
             return err;
         }
     }
+
+    /* default values */
+    if (config->tracemalloc < 0) {
+        config->tracemalloc = 0;
+    }
+    if (config->install_signal_handlers < 0) {
+        /* Signal handlers are installed by default */
+        config->install_signal_handlers = 1;
+    }
+
     return _Py_INIT_OK();
 }
 
