diff --git a/Doc/library/undoc.rst b/Doc/library/undoc.rst
index b349c99..987f95e 100644
--- a/Doc/library/undoc.rst
+++ b/Doc/library/undoc.rst
@@ -26,9 +26,3 @@
 :mod:`posixpath`
    --- Implementation of :mod:`os.path` on POSIX.
 
-
-Multimedia
-==========
-
-:mod:`sunaudio`
-   --- Interpret Sun audio headers (may become obsolete or a tool/demo).
diff --git a/Lib/sunaudio.py b/Lib/sunaudio.py
deleted file mode 100644
index 6c1bba1..0000000
--- a/Lib/sunaudio.py
+++ /dev/null
@@ -1,48 +0,0 @@
-"""Interpret sun audio headers."""
-
-MAGIC = b'.snd'
-
-class error(Exception):
-    pass
-
-
-def get_long_be(s):
-    """Convert a 4-byte value to integer."""
-    return (s[0]<<24) | (s[1]<<16) | (s[2]<<8) | s[3]
-
-
-def gethdr(fp):
-    """Read a sound header from an open file."""
-    if fp.read(4) != MAGIC:
-        raise error('gethdr: bad magic word')
-    hdr_size = get_long_be(fp.read(4))
-    data_size = get_long_be(fp.read(4))
-    encoding = get_long_be(fp.read(4))
-    sample_rate = get_long_be(fp.read(4))
-    channels = get_long_be(fp.read(4))
-    excess = hdr_size - 24
-    if excess < 0:
-        raise error('gethdr: bad hdr_size')
-    if excess > 0:
-        info = fp.read(excess)
-    else:
-        info = b''
-    return (data_size, encoding, sample_rate, channels, info)
-
-
-def printhdr(file):
-    """Read and print the sound header of a named file."""
-    f = open(file, 'rb')
-    try:
-        hdr = gethdr(f)
-    finally:
-        f.close()
-    data_size, encoding, sample_rate, channels, info = hdr
-    while info.endswith(b'\0'):
-        info = info[:-1]
-    print('File name:  ', file)
-    print('Data size:  ', data_size)
-    print('Encoding:   ', encoding)
-    print('Sample rate:', sample_rate)
-    print('Channels:   ', channels)
-    print('Info:       ', repr(info))
diff --git a/Lib/test/test_sundry.py b/Lib/test/test_sundry.py
index 18101e7..a99d2c0 100644
--- a/Lib/test/test_sundry.py
+++ b/Lib/test/test_sundry.py
@@ -64,7 +64,6 @@
             import sched
             import sndhdr
             import sunau
-            import sunaudio
             import symbol
             import tabnanny
             import timeit
diff --git a/Misc/NEWS b/Misc/NEWS
index fa8061f..54a0baa 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -34,6 +34,8 @@
 Library
 -------
 
+- Removed the sunaudio module. Use sunau instead.
+
 - Removed "ast" function aliases from the parser module.
 
 - Issue #3313: Fixed a crash when a failed dlopen() call does not set
