diff --git a/Lib/test/test_faulthandler.py b/Lib/test/test_faulthandler.py
index d6dc4ba..984690f 100644
--- a/Lib/test/test_faulthandler.py
+++ b/Lib/test/test_faulthandler.py
@@ -5,6 +5,7 @@
 import signal
 import subprocess
 import sys
+import sysconfig
 from test import support
 from test.support import script_helper, is_android
 import tempfile
@@ -19,6 +20,10 @@
 
 TIMEOUT = 0.5
 MS_WINDOWS = (os.name == 'nt')
+MEMORY_SANITIZER = (
+    sysconfig.get_config_var("CONFIG_ARGS") and
+    ("--with-memory-sanitizer" in sysconfig.get_config_var("CONFIG_ARGS"))
+)
 
 def expected_traceback(lineno1, lineno2, header, min_count=1):
     regex = header
@@ -252,6 +257,8 @@
             3,
             'Segmentation fault')
 
+    @unittest.skipIf(MEMORY_SANITIZER,
+                     "memory-sanizer builds change crashing process output.")
     @skip_segfault_on_android
     def test_enable_file(self):
         with temporary_filename() as filename:
@@ -267,6 +274,8 @@
 
     @unittest.skipIf(sys.platform == "win32",
                      "subprocess doesn't support pass_fds on Windows")
+    @unittest.skipIf(MEMORY_SANITIZER,
+                     "memory-sanizer builds change crashing process output.")
     @skip_segfault_on_android
     def test_enable_fd(self):
         with tempfile.TemporaryFile('wb+') as fp:
diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-12-30-15-36-23.bpo-35214.GWDQcv.rst b/Misc/NEWS.d/next/Core and Builtins/2018-12-30-15-36-23.bpo-35214.GWDQcv.rst
new file mode 100644
index 0000000..d2e5457
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2018-12-30-15-36-23.bpo-35214.GWDQcv.rst
@@ -0,0 +1,2 @@
+clang Memory Sanitizer build instrumentation was added to work around false
+positives from socket, time, and test_faulthandler.
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index e6d3f8b..661e1bd 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -100,6 +100,10 @@
 #include "Python.h"
 #include "structmember.h"
 
+#ifdef _Py_MEMORY_SANITIZER
+# include <sanitizer/msan_interface.h>
+#endif
+
 /* Socket object documentation */
 PyDoc_STRVAR(sock_doc,
 "socket(family=AF_INET, type=SOCK_STREAM, proto=0) -> socket object\n\
@@ -6463,7 +6467,23 @@
         return NULL;
     }
 
+#ifdef _Py_MEMORY_SANITIZER
+    __msan_unpoison(ni, sizeof(ni));
+    __msan_unpoison(&ni[0], sizeof(ni[0]));
+#endif
     for (i = 0; ni[i].if_index != 0 && i < INT_MAX; i++) {
+#ifdef _Py_MEMORY_SANITIZER
+        /* This one isn't the end sentinel, the next one must exist. */
+        __msan_unpoison(&ni[i+1], sizeof(ni[0]));
+        /* Otherwise Py_BuildValue internals are flagged by MSan when
+           they access the not-msan-tracked if_name string data. */
+        {
+            char *to_sanitize = ni[i].if_name;
+            do {
+                __msan_unpoison(to_sanitize, 1);
+            } while (*to_sanitize++ != '\0');
+        }
+#endif
         PyObject *ni_tuple = Py_BuildValue("IO&",
                 ni[i].if_index, PyUnicode_DecodeFSDefault, ni[i].if_name);
 
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index 13a174a..5e99bd8 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -34,6 +34,10 @@
 #endif /* MS_WINDOWS */
 #endif /* !__WATCOMC__ || __QNX__ */
 
+#ifdef _Py_MEMORY_SANITIZER
+# include <sanitizer/msan_interface.h>
+#endif
+
 #define SEC_TO_NS (1000 * 1000 * 1000)
 
 /* Forward declarations */
@@ -331,6 +335,9 @@
         PyErr_SetFromErrno(PyExc_OSError);
         return NULL;
     }
+#ifdef _Py_MEMORY_SANITIZER
+    __msan_unpoison(&clk_id, sizeof(clk_id));
+#endif
     return PyLong_FromLong(clk_id);
 }
 
