diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index 1720875..b17827c 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -178,6 +178,26 @@
                               "raise SystemExit(47)"])
         self.assertEqual(rc, 47)
 
+        def check_exit_message(code, expected, env=None):
+            process = subprocess.Popen([sys.executable, "-c", code],
+                                       stderr=subprocess.PIPE, env=env)
+            stdout, stderr = process.communicate()
+            self.assertEqual(process.returncode, 1)
+            self.assertTrue(stderr.startswith(expected),
+                "%s doesn't start with %s" % (repr(stderr), repr(expected)))
+
+        # test that stderr buffer if flushed before the exit message is written
+        # into stderr
+        check_exit_message(
+            r'import sys; sys.stderr.write("unflushed,"); sys.exit("message")',
+            b"unflushed,message")
+
+        # test that the unicode message is encoded to the stderr encoding
+        env = os.environ.copy()
+        env['PYTHONIOENCODING'] = 'latin-1'
+        check_exit_message(
+            r'import sys; sys.exit(u"h\xe9")',
+            b"h\xe9", env=env)
 
     def test_getdefaultencoding(self):
         if test.test_support.have_unicode:
diff --git a/Misc/NEWS b/Misc/NEWS
index 9d69378..e1b82a6 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@
 Core and Builtins
 -----------------
 
+- Issue #3798: Write sys.exit() message to sys.stderr to use stderr encoding
+  and error handler, instead of writing to the C stderr file in utf-8
+
 - Issue #7902: When using explicit relative import syntax, don't try implicit
   relative import semantics.
 
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index f203618..db5d0a7 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -1106,7 +1106,13 @@
     if (PyInt_Check(value))
         exitcode = (int)PyInt_AsLong(value);
     else {
-        PyObject_Print(value, stderr, Py_PRINT_RAW);
+        PyObject *sys_stderr = PySys_GetObject("stderr");
+        if (sys_stderr != NULL && sys_stderr != Py_None) {
+            PyFile_WriteObject(value, sys_stderr, Py_PRINT_RAW);
+        } else {
+            PyObject_Print(value, stderr, Py_PRINT_RAW);
+            fflush(stderr);
+        }
         PySys_WriteStderr("\n");
         exitcode = 1;
     }
