diff --git a/Lib/sunau.py b/Lib/sunau.py
index 4d07f43..5f50e8f 100644
--- a/Lib/sunau.py
+++ b/Lib/sunau.py
@@ -299,7 +299,7 @@
         self._nframeswritten = 0
         self._datawritten = 0
         self._datalength = 0
-        self._info = ''
+        self._info = b''
         self._comptype = 'ULAW' # default is U-law
 
     def setnchannels(self, nchannels):
diff --git a/Lib/test/test_sunau.py b/Lib/test/test_sunau.py
new file mode 100644
index 0000000..339ab57
--- /dev/null
+++ b/Lib/test/test_sunau.py
@@ -0,0 +1,70 @@
+from test.support import run_unittest, TESTFN
+import unittest
+import os
+
+import sunau
+
+nchannels = 2
+sampwidth = 2
+framerate = 8000
+nframes = 100
+
+class SunAUTest(unittest.TestCase):
+
+    def setUp(self):
+        self.f = None
+
+    def tearDown(self):
+        if self.f is not None:
+            self.f.close()
+        try:
+            os.remove(TESTFN)
+        except OSError:
+            pass
+
+    def test_lin(self):
+        self.f = sunau.open(TESTFN, 'w')
+        self.f.setnchannels(nchannels)
+        self.f.setsampwidth(sampwidth)
+        self.f.setframerate(framerate)
+        self.f.setcomptype('NONE', 'not compressed')
+        output = b'\xff\x00\x12\xcc' * (nframes * nchannels * sampwidth // 4)
+        self.f.writeframes(output)
+        self.f.close()
+
+        self.f = sunau.open(TESTFN, 'rb')
+        self.assertEqual(nchannels, self.f.getnchannels())
+        self.assertEqual(sampwidth, self.f.getsampwidth())
+        self.assertEqual(framerate, self.f.getframerate())
+        self.assertEqual(nframes, self.f.getnframes())
+        self.assertEqual('NONE', self.f.getcomptype())
+        self.assertEqual(self.f.readframes(nframes), output)
+        self.f.close()
+
+    def test_ulaw(self):
+        self.f = sunau.open(TESTFN, 'w')
+        self.f.setnchannels(nchannels)
+        self.f.setsampwidth(sampwidth)
+        self.f.setframerate(framerate)
+        self.f.setcomptype('ULAW', '')
+        # u-law compression is lossy, therefore we can't expect non-zero data
+        # to come back unchanged.
+        output = b'\0' * nframes * nchannels * sampwidth
+        self.f.writeframes(output)
+        self.f.close()
+
+        self.f = sunau.open(TESTFN, 'rb')
+        self.assertEqual(nchannels, self.f.getnchannels())
+        self.assertEqual(sampwidth, self.f.getsampwidth())
+        self.assertEqual(framerate, self.f.getframerate())
+        self.assertEqual(nframes, self.f.getnframes())
+        self.assertEqual('ULAW', self.f.getcomptype())
+        self.assertEqual(self.f.readframes(nframes), output)
+        self.f.close()
+
+
+def test_main():
+    run_unittest(SunAUTest)
+
+if __name__ == "__main__":
+    unittest.main()
diff --git a/Misc/ACKS b/Misc/ACKS
index 2fb8b5b..a20550e 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -389,6 +389,7 @@
 Fredrik Johansson
 Gregory K. Johnson
 Simon Johnston
+Thomas Jollans
 Evan Jones
 Jeremy Jones
 Richard Jones
diff --git a/Misc/NEWS b/Misc/NEWS
index a8998fb..d83af83 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -398,6 +398,9 @@
 Library
 -------
 
+- Issue #8897: Fix sunau module, use bytes to write the header. Patch written
+  by Thomas Jollans.
+
 - Issue #8899: time.struct_time now has class and atribute docstrings.
 
 - Issue #6470: Drop UNC prefix in FixTk.
